/** * @param ContainerInterface $container * @param array $modules * @return array * @throws \Exception */ public function installModules(ContainerInterface $container, array $modules = []) { foreach ($this->vendor->getVendors() as $vendor) { $vendorPath = $this->applicationPath->getModulesDir() . $vendor . '/'; $vendorModules = count($modules) > 0 ? $modules : Filesystem::scandir($vendorPath); foreach ($vendorModules as $module) { $module = strtolower($module); if (isset($this->results[$module])) { continue; } $modulePath = $vendorPath . ucfirst($module) . '/'; $moduleConfigPath = $modulePath . 'Resources/config/module.xml'; if (is_dir($modulePath) && is_file($moduleConfigPath)) { $dependencies = $this->getModuleDependencies($moduleConfigPath); if (count($dependencies) > 0) { $this->installModules($container, $dependencies); } if ($this->installHelper->installModule($module, $container) === false) { throw new \Exception("Error while installing module {$module}."); } $this->results[$module] = true; } } } return $this->results; }
/** * @throws \Exception */ public function installSampleData() { foreach ($this->vendor->getVendors() as $vendor) { foreach (Filesystem::scandir($this->appPath->getModulesDir() . $vendor . '/') as $module) { $module = strtolower($module); $sampleDataInstallResult = $this->installHelper->installSampleData($module, $this->container, $this->container->get('core.modules.schemaHelper')); if ($sampleDataInstallResult === false) { throw new \Exception("Error while installing module sample data."); } } } }