public static function buildCatalog() { self::$catalog = array(); self::$packageList = array(); $configureFiles = self::listConfigureFiles(); $installedPackages = array(); foreach ($configureFiles as $class => $filepath) { $metadata = get_class_vars($class); $metadata['configure_class'] = $class; Package_Catalog_Standardize::packageData($metadata, $filepath); Package_Catalog_Standardize::navigation($metadata); Package_Catalog_Standardize::typeRestrictions($metadata); Package_Catalog_Datastore::import($metadata); //Package_Message::log('debug', 'Catalog added ' .str_replace(DOCROOT, '', $filepath) .' as ' .$metadata['packageName'] .' version ' .$metadata['version'] . ' identified by ' .$metadata['identifier']); self::$catalog[$metadata['identifier']] = $metadata; self::$packageList[$metadata['packageName']][$metadata['status']][$metadata['identifier']] =& self::$catalog[$metadata['identifier']]; } if (self::$remote) { $remoteCatalog = Package_Catalog_Remote::queryRepositories(); foreach ($remoteCatalog as $identifier => $metadata) { if (!empty(self::$catalog[$identifier])) { continue; } self::$catalog[$identifier] = $metadata; self::$packageList[$metadata['packageName']][Package_Manager::STATUS_UNINSTALLED][$identifier] =& self::$catalog[$identifier]; } } self::findAvaliableMigrations(); return self::$catalog; }