Nette\Configurator::generateContainer PHP Метод

generateContainer() публичный Метод

public generateContainer ( Compiler $compiler ) : string
$compiler Nette\DI\Compiler
Результат string
    public function generateContainer(DI\Compiler $compiler)
    {
        $loader = $this->createLoader();
        $compiler->addConfig(['parameters' => $this->parameters]);
        $fileInfo = [];
        foreach ($this->files as $info) {
            if (is_scalar($info[0])) {
                $fileInfo[] = "// source: {$info['0']} {$info['1']}";
                $info[0] = $loader->load($info[0], $info[1]);
            }
            $compiler->addConfig($this->fixCompatibility($info[0]));
        }
        $compiler->addDependencies($loader->getDependencies());
        $builder = $compiler->getContainerBuilder();
        $builder->addExcludedClasses($this->autowireExcludedClasses);
        foreach ($this->defaultExtensions as $name => $extension) {
            list($class, $args) = is_string($extension) ? [$extension, []] : $extension;
            if (class_exists($class)) {
                $args = DI\Helpers::expand($args, $this->parameters, TRUE);
                $compiler->addExtension($name, (new \ReflectionClass($class))->newInstanceArgs($args));
            }
        }
        $this->onCompile($this, $compiler);
        $classes = $compiler->compile();
        return implode("\n", $fileInfo) . "\n\n" . $classes;
    }