* @package PHPCI * @subpackage Web */ class PluginController extends \PHPCI\Controller { /** * List all enabled plugins, installed and recommend packages. * @return string */ public function index() { $this->requireAdmin(); $json = $this->getComposerJson(); $this->view->installedPackages = $json['require']; $pluginInfo = new PluginInformationCollection(); $pluginInfo->add(FilesPluginInformation::newFromDir( PHPCI_DIR . "PHPCI/Plugin/" )); $pluginInfo->add(ComposerPluginInformation::buildFromYaml( PHPCI_DIR . "vendor/composer/installed.json" )); $this->view->plugins = $pluginInfo->getInstalledPlugins(); $this->layout->title = Lang::get('plugins'); return $this->view->render(); } /** * Get the json-decoded contents of the composer.json file. * @return mixed */ protected function getComposerJson() { $json = file_get_contents(APPLICATION_PATH . 'composer.json'); return json_decode($json, true); } }