Пример #1
0
 public static function packages()
 {
     // If we already found the packages just return them
     if (!empty(Kodoc::$packages)) {
         return Kodoc::$packages;
     }
     $files = Kodoc::classes();
     $packages = array();
     foreach ($files as $group => $classes) {
         // We have to parse config files differently
         if ($group === 'config') {
             foreach ($classes as $config) {
                 $config = Kodoc::parse_config($config);
                 if (isset($config->tags['package'])) {
                     foreach ($config->tags['package'] as $package) {
                         $packages[strtolower($package)]['configs'][$config->name] = $config->name;
                     }
                 } else {
                     $packages['unknown']['configs'][$config->name] = $config->name;
                 }
             }
         } else {
             foreach ($classes as $class) {
                 $class = Kodoc::factory($class);
                 if (isset($class->tags['package'])) {
                     foreach ($class->tags['package'] as $package) {
                         $packages[strtolower($package)][$group][$class->name] = $class->name;
                     }
                 } else {
                     $packages['unknown'][$group][$class->name] = $class->name;
                 }
             }
         }
     }
     // Sort the groups in each package
     foreach ($packages as &$package) {
         foreach ($package as &$group) {
             ksort($group);
         }
         ksort($package);
     }
     return Kodoc::$packages = $packages;
 }