Example #1
0
 /**
  * Parse PHP files and return plain array with the class descriptors
  *
  * @return array
  */
 protected static function getClassesTreeIndex()
 {
     $index = array();
     // Iterate over all directories with PHP class files
     foreach (static::getClassFileIterator()->getIterator() as $path => $data) {
         // Use PHP Tokenizer to search class declaration
         if (($class = \Includes\Decorator\Utils\Tokenizer::getFullClassName($path)) && \Includes\Utils\Operator::checkIfLCClass($class)) {
             // File contains a class declaration: create node (descriptor)
             $node = new \Includes\Decorator\DataStructure\Graph\Classes($class);
             // Check parent class (so called optional dependencies for modules)
             $dependencies = $node->getTag('lc_dependencies', true);
             if (empty($dependencies) || \Includes\Utils\ModulesManager::areActiveModules($dependencies)) {
                 // Node is valid: add to the index
                 $index[$class] = $node;
             } else {
                 // The unused class file must be removed from the cache file structure
                 \Includes\Utils\FileManager::deleteFile($node->getFile());
             }
         }
     }
     return $index;
 }