Exemplo n.º 1
0
 public function setupContainer(ComposerParserResult $parserResult)
 {
     $directory = $parserResult->getDirectory();
     $resolver = new ReferenceResolver();
     $loaders = [new JsonLoader(), new YamlLoader()];
     include $directory . "/vendor/autoload.php";
     $builder = new ContainerBuilder($resolver, [$directory]);
     foreach ($loaders as $loader) {
         $builder->addLoader($loader);
     }
     $builder->setApplicationRootDirectory($directory);
     if ($parserResult->usesSyringe()) {
         $builder->addConfigFile($parserResult->getAbsoluteSyringeConfig());
         // This is a hack regarding the somewhat naff way Namespaces can end up working
         $builder->addConfigFiles([$parserResult->getNamespace() => $parserResult->getAbsoluteSyringeConfig()]);
     }
     $additionalConfigs = $this->input->getOption("configs");
     foreach ($additionalConfigs as $config) {
         $builder->addConfigFile(realpath($config));
     }
     $builder->addConfigFiles($parserResult->getConfigList());
     return $builder->createContainer();
 }