/** * Register a new plugin for autoloading. * */ private function addPlugin($pluginName) { // nbLogger::getInstance()->logLine('Loading Plugin <comment>' . $pluginName . '</comment>...'); if (key_exists($pluginName, $this->plugins)) { return true; } foreach ($this->pluginDirs as $dir) { $path = $dir . '/' . $pluginName; if (is_dir($path)) { $this->plugins[$pluginName] = $path; } } if (!key_exists($pluginName, $this->plugins)) { throw new Exception(sprintf('Plugin %s not found', $pluginName)); } nbAutoload::getInstance()->addDirectory($this->plugins[$pluginName] . '/lib', '*.php', true); nbAutoload::getInstance()->addDirectory($this->plugins[$pluginName] . '/command', '*Command.php', true); nbAutoload::getInstance()->addDirectory($this->plugins[$pluginName] . '/vendor'); self::$commandLoader->addCommandsFromDir($this->plugins[$pluginName] . '/command'); if (is_dir($this->plugins[$pluginName] . '/test/unit')) { $testDirs = nbConfig::get('nb_plugin_test_dirs', array()); $testDirs[] = $this->plugins[$pluginName] . '/test/unit'; nbConfig::set('nb_plugin_test_dirs', array_unique($testDirs)); } if (!file_exists($this->plugins[$pluginName] . '/config/config.yml')) { return true; } $yamlParser = new nbYamlConfigParser(); $yamlParser->parseFile($this->plugins[$pluginName] . '/config/config.yml', '', true); }
<?php require_once dirname(__FILE__) . '/../../lib/core/autoload/nbAutoload.php'; $autoload = nbAutoload::getInstance(); $autoload->register(); $autoload->addDirectory('vendor/', '*.php', true); $autoload->addDirectory('lib/', '*.php', true); $autoload->addDirectory('test/lib/', '*.php', true); // Configures bee variables $configParser = new nbYamlConfigParser(); nbConfig::set('nb_bee_dir', dirname(__FILE__) . '/../..'); nbConfig::set('nb_config_dir', nbConfig::get('nb_bee_dir') . '/config'); nbConfig::set('nb_test_config_dir', dirname(__FILE__) . '/../config/'); $configParser->parseFile(nbConfig::get('nb_bee_dir') . '/.bee/config.yml', '', true); $configParser->parseFile(nbConfig::get('nb_config_dir') . '/config.yml', '', true); $configParser->parseFile(nbConfig::get('nb_test_config_dir') . '/config.yml', '', true); $serviceContainer = new sfServiceContainerBuilder(); $serviceContainer->register('pluginLoader', 'nbPluginLoader')->addArgument(nbConfig::get('nb_plugins_dir'))->addArgument(new sfServiceReference('commandLoader'))->setShared(true); $serviceContainer->register('commandLoader', 'nbCommandLoaderWithReset')->setShared(true); $output = new nbConsoleOutput(); $logger = nbLogger::getInstance(); $logger->setOutput($output);