Puli\Manager\Api\Container::createProjectContext PHP Метод

createProjectContext() приватный Метод

The home directory is read from the context variable "PULI_HOME". If this variable is not set, the home directory defaults to: * $HOME/.puli on Linux, where $HOME is the context variable "HOME". * $APPDATA/Puli on Windows, where $APPDATA is the context variable "APPDATA". If none of these variables can be found, an exception is thrown. A .htaccess file is put into the home directory to protect it from web access.
private createProjectContext ( string $rootDir, $env ) : Puli\Manager\Api\Context\ProjectContext
$rootDir string The path to the project.
Результат Puli\Manager\Api\Context\ProjectContext The project context.
    private function createProjectContext($rootDir, $env)
    {
        Assert::fileExists($rootDir, 'Could not load Puli context: The root %s does not exist.');
        Assert::directory($rootDir, 'Could not load Puli context: The root %s is a file. Expected a directory.');
        $baseConfig = new DefaultConfig();
        $homeDir = self::parseHomeDirectory();
        if (null !== ($configFile = $this->loadConfigFile($homeDir, $baseConfig))) {
            $baseConfig = $configFile->getConfig();
        }
        // Create a storage without the factory manager
        $jsonStorage = new JsonStorage($this->getStorage(), new JsonConverterProvider($this), $this->getJsonEncoder(), $this->getJsonDecoder());
        $rootDir = Path::canonicalize($rootDir);
        $rootFilePath = $this->rootDir . '/puli.json';
        try {
            $rootModuleFile = $jsonStorage->loadRootModuleFile($rootFilePath, $baseConfig);
        } catch (FileNotFoundException $e) {
            $rootModuleFile = new RootModuleFile(null, $rootFilePath, $baseConfig);
        }
        $config = new EnvConfig($rootModuleFile->getConfig());
        return new ProjectContext($homeDir, $rootDir, $config, $rootModuleFile, $configFile, $this->dispatcher, $env);
    }