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(); }