/**
* @param $env
* @return Container
*/
public function getContainer($env)
{
$container = null;
$builder = new ContainerBuilder(Container::class);
// $builder = new ContainerBuilder();
foreach (glob(APP_HOME . '/conf/conf.d/*.conf.php') as $filename) {
$builder->addDefinitions($filename);
}
$definitionsEnumFile = APP_HOME . '/conf/config.' . $env . '.php';
if (file_exists($definitionsEnumFile)) {
$builder->addDefinitions($definitionsEnumFile);
}
$builder->useAnnotations(false);
$builder->useAutowiring(true);
switch ($env) {
case EnvironmentEnum::DEV:
$builder->setDefinitionCache(new ArrayCache());
break;
case EnvironmentEnum::PROD:
default:
$cache = $this->getCache();
$builder->setDefinitionCache($cache);
$builder->writeProxiesToFile(true, APP_HOME . '/var/cache/proxies');
break;
}
$container = $builder->build();
return $container;
}