Puli\Manager\Installer\ModuleFileInstallerManager::loadInstallers PHP Method

loadInstallers() private method

private loadInstallers ( Puli\Manager\Api\Module\Module $module )
$module Puli\Manager\Api\Module\Module
    private function loadInstallers(Module $module)
    {
        foreach (self::$builtinInstallers as $name => $installerData) {
            $installer = $this->dataToInstaller($name, (object) $installerData);
            $this->installerDescriptors[$name] = $installer;
        }
        $moduleFile = $module->getModuleFile();
        if (null === $moduleFile) {
            return;
        }
        $moduleName = $module->getName();
        $installersData = $moduleFile->getExtraKey(self::INSTALLERS_KEY);
        if (!$installersData) {
            return;
        }
        $jsonValidator = new JsonValidator();
        $errors = $jsonValidator->validate($installersData, __DIR__ . '/../../res/schema/installers-schema-1.0.json');
        if (count($errors) > 0) {
            throw new ValidationFailedException(sprintf("The extra key \"%s\" of module \"%s\" is invalid:\n%s", self::INSTALLERS_KEY, $moduleName, implode("\n", $errors)));
        }
        foreach ($installersData as $name => $installerData) {
            $installer = $this->dataToInstaller($name, $installerData);
            $this->installerDescriptors[$name] = $installer;
            if ($module instanceof RootModule) {
                $this->rootInstallerDescriptors[$name] = $installer;
            }
        }
    }