private function createCallableObjects()
    {
        // Create callable objects for registered classes
        foreach($this->aClassOptions as $sClassName => $aClassOptions)
        {
            if(!key_exists($sClassName, $this->aCallableObjects))
            {
                $this->_getCallableObject($sClassName, $aClassOptions);
            }
        }

        // Create callable objects for registered namespaces
        $sDS = DIRECTORY_SEPARATOR;
        foreach($this->aNamespaceOptions as $sNamespace => $aOptions)
        {
            if(key_exists($sNamespace, $this->aNamespaces))
            {
                continue;
            }

            $this->aNamespaces[$sNamespace] = $sNamespace;

            // Iterate on dir content
            $sDirectory = $aOptions['directory'];
            $itDir = new RecursiveDirectoryIterator($sDirectory);
            $itFile = new RecursiveIteratorIterator($itDir);
            foreach($itFile as $xFile)
            {
                // skip everything except PHP files
                if(!$xFile->isFile() || $xFile->getExtension() != 'php')
                {
                    continue;
                }

                // Find the class path (the same as the class namespace)
                $sClassPath = $sNamespace;
                $sRelativePath = substr($xFile->getPath(), strlen($sDirectory));
                $sRelativePath = trim(str_replace($sDS, '\\', $sRelativePath), '\\');
                if($sRelativePath != '')
                {
                    $sClassPath .= '\\' . $sRelativePath;
                }

                $this->aNamespaces[$sClassPath] = ['separator' => $aOptions['separator']];
                $sClassName = $sClassPath . '\\' . $xFile->getBasename('.php');

                if(!key_exists($sClassName, $this->aCallableObjects))
                {
                    $aClassOptions = $this->getOptionsFromNamespace($sClassName, $sNamespace);
                    if($aClassOptions !== null)
                    {
                        $this->_getCallableObject($sClassName, $aClassOptions);
                    }
                }
            }
        }
    }
private function createCallableObjects()
    {
        // Create callable objects for registered classes
        foreach($this->aClassOptions as $sClassName => $aClassOptions)
        {
            if(!key_exists($sClassName, $this->aCallableObjects))
            {
                $this->_getCallableObject($sClassName, $aClassOptions);
            }
        }

        // Create callable objects for registered namespaces
        $sDS = DIRECTORY_SEPARATOR;
        foreach($this->aNamespaceOptions as $sNamespace => $aOptions)
        {
            if(key_exists($sNamespace, $this->aNamespaces))
            {
                continue;
            }

            $this->aNamespaces[$sNamespace] = $sNamespace;

            // Iterate on dir content
            $sDirectory = $aOptions['directory'];
            $itDir = new RecursiveDirectoryIterator($sDirectory);
            $itFile = new RecursiveIteratorIterator($itDir);
            foreach($itFile as $xFile)
            {
                // skip everything except PHP files
                if(!$xFile->isFile() || $xFile->getExtension() != 'php')
                {
                    continue;
                }

                // Find the class path (the same as the class namespace)
                $sClassPath = $sNamespace;
                $sRelativePath = substr($xFile->getPath(), strlen($sDirectory));
                $sRelativePath = trim(str_replace($sDS, '\\', $sRelativePath), '\\');
                if($sRelativePath != '')
                {
                    $sClassPath .= '\\' . $sRelativePath;
                }

                $this->aNamespaces[$sClassPath] = ['separator' => $aOptions['separator']];
                $sClassName = $sClassPath . '\\' . $xFile->getBasename('.php');

                if(!key_exists($sClassName, $this->aCallableObjects))
                {
                    $aClassOptions = $this->getOptionsFromNamespace($sClassName, $sNamespace);
                    if($aClassOptions !== null)
                    {
                        $this->_getCallableObject($sClassName, $aClassOptions);
                    }
                }
            }
        }
    }
private function createCallableObjects ( ) { // Create callable objects for registered classes foreach ( $ this -> aClassOptions as $ sClassName => $ aClassOptions ) { if ( ! key_exists ( $ sClassName , $ this -> aCallableObjects ) ) { $ this -> _getCallableObject ( $ sClassName , $ aClassOptions ) ; } } // Create callable objects for registered namespaces $ sDS = DIRECTORY_SEPARATOR ; foreach ( $ this -> aNamespaceOptions as $ sNamespace => $ aOptions ) { if ( key_exists ( $ sNamespace , $ this -> aNamespaces ) ) { continue ; } $ this -> aNamespaces [ $ sNamespace ] = $ sNamespace ; // Iterate on dir content $ sDirectory = $ aOptions [ 'directory' ] ; $ itDir = new RecursiveDirectoryIterator ( $ sDirectory ) ; $ itFile = new RecursiveIteratorIterator ( $ itDir ) ; foreach ( $ itFile as $ xFile ) { // skip everything except PHP files if ( ! $ xFile -> isFile ( ) || $ xFile -> getExtension ( ) != 'php' ) { continue ; } // Find the class path (the same as the class namespace) $ sClassPath = $ sNamespace ; $ sRelativePath = substr ( $ xFile -> getPath ( ) , strlen ( $ sDirectory ) ) ; $ sRelativePath = trim ( str_replace ( $ sDS , '\\' , $ sRelativePath ) , '\\' ) ; if ( $ sRelativePath != '' ) { $ sClassPath .= '\\' . $ sRelativePath ; } $ this -> aNamespaces [ $ sClassPath ] = [ 'separator' => $ aOptions [ 'separator' ] ] ; $ sClassName = $ sClassPath . '\\' . $ xFile -> getBasename ( '.php' ) ; if ( ! key_exists ( $ sClassName , $ this -> aCallableObjects ) ) { $ aClassOptions = $ this -> getOptionsFromNamespace ( $ sClassName , $ sNamespace ) ; if ( $ aClassOptions !== null ) { $ this -> _getCallableObject ( $ sClassName , $ aClassOptions ) ; } } } } }
Create callable objects for all registered namespaces

@return void
Create callable objects for all registered namespaces