* @package PHPCI * @subpackage Web */ class PluginController extends 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(SRC_DIR . "Plugin" . DIRECTORY_SEPARATOR)); $pluginInfo->add(ComposerPluginInformation::buildFromYaml( ROOT_DIR . "vendor" . DIRECTORY_SEPARATOR . "composer" . DIRECTORY_SEPARATOR . "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(ROOT_DIR . 'composer.json'); return json_decode($json, true); } }