public function __construct(Plugin $data) { $this->id = $data->getId(); $this->installationDate = $data->getInstallationDate(); $this->name = $data->getName(); $this->description = $data->getDescription(); $this->active = $data->getActive(); }
private function installDirectory($path) { $pluginJsonFile = $path . '/zource-plugin.json'; if (!is_file($pluginJsonFile)) { throw new RuntimeException('The plugin is invalid, missing plugin.json'); } $pluginJsonFileContent = file_get_contents($pluginJsonFile); $pluginJsonFileData = $this->createPluginInfo($pluginJsonFileContent); $plugin = $this->getPluginByName($pluginJsonFileData['name']); if ($plugin) { return; } $plugin = new Plugin($pluginJsonFileData['name'], (array) $pluginJsonFileData['namespaces']); $plugin->setActive(true); if (array_key_exists('description', $pluginJsonFileData)) { $plugin->setDescription($pluginJsonFileData['description']); } $this->entityManager->persist($plugin); $this->entityManager->flush($plugin); $this->updateAutoloader(); }