protected function createContainer(ContainerModuleLoader $loader, ScopeLoader $scopes)
	{
		$contextCachePath = $this->cacheDirectory . DIRECTORY_SEPARATOR . $this->contextName;
		$cacheFile = $contextCachePath . DIRECTORY_SEPARATOR . 'container.php';
		
		$containerTypeName = __NAMESPACE__ . '\\CompiledContainer';
		$proxyPath = Filesystem::createDirectory($contextCachePath . DIRECTORY_SEPARATOR . 'scoped');
		
		$scopedProxies = [];
		
		foreach($scopes as $scope)
		{
			foreach($scope->getProxyTypeNames() as $typeName)
			{
				$scopedProxies[] = $typeName;
			}
		}
		
		if(!is_file($cacheFile) || $this->cache->isModified())
		{
			$builder = $this->createContainerBuilder();
			
			foreach($this->komponents as $komponent)
			{
				$komponent->build($builder);
			}
			
			foreach($loader as $module)
			{
				$module->build($builder);
			}
			
			$this->build($builder);
			
			if($this->isInstrumentationEnabled())
			{
				$manager = $this->getManifest();
			}
			else
			{
				$manager = new ReflectionTypeInfoManager();
			}
			
			$compiler = new ContainerCompiler($manager, $containerTypeName);
			$code = $compiler->compile($builder, $proxyPath, $scopedProxies);
				
			Filesystem::writeFile($cacheFile, $code);
		}
		
		require_once $cacheFile;
		
		return new $containerTypeName($this->getContainerParams());
	}
protected function createContainer(ContainerModuleLoader $loader, ScopeLoader $scopes)
	{
		$contextCachePath = $this->cacheDirectory . DIRECTORY_SEPARATOR . $this->contextName;
		$cacheFile = $contextCachePath . DIRECTORY_SEPARATOR . 'container.php';
		
		$containerTypeName = __NAMESPACE__ . '\\CompiledContainer';
		$proxyPath = Filesystem::createDirectory($contextCachePath . DIRECTORY_SEPARATOR . 'scoped');
		
		$scopedProxies = [];
		
		foreach($scopes as $scope)
		{
			foreach($scope->getProxyTypeNames() as $typeName)
			{
				$scopedProxies[] = $typeName;
			}
		}
		
		if(!is_file($cacheFile) || $this->cache->isModified())
		{
			$builder = $this->createContainerBuilder();
			
			foreach($this->komponents as $komponent)
			{
				$komponent->build($builder);
			}
			
			foreach($loader as $module)
			{
				$module->build($builder);
			}
			
			$this->build($builder);
			
			if($this->isInstrumentationEnabled())
			{
				$manager = $this->getManifest();
			}
			else
			{
				$manager = new ReflectionTypeInfoManager();
			}
			
			$compiler = new ContainerCompiler($manager, $containerTypeName);
			$code = $compiler->compile($builder, $proxyPath, $scopedProxies);
				
			Filesystem::writeFile($cacheFile, $code);
		}
		
		require_once $cacheFile;
		
		return new $containerTypeName($this->getContainerParams());
	}
protected function createContainer ( ContainerModuleLoader $ loader , ScopeLoader $ scopes ) { $ contextCachePath = $ this -> cacheDirectory . DIRECTORY_SEPARATOR . $ this -> contextName ; $ cacheFile = $ contextCachePath . DIRECTORY_SEPARATOR . 'container.php' ; $ containerTypeName = __NAMESPACE__ . '\\CompiledContainer' ; $ proxyPath = Filesystem :: createDirectory ( $ contextCachePath . DIRECTORY_SEPARATOR . 'scoped' ) ; $ scopedProxies = [ ] ; foreach ( $ scopes as $ scope ) { foreach ( $ scope -> getProxyTypeNames ( ) as $ typeName ) { $ scopedProxies [ ] = $ typeName ; } } if ( ! is_file ( $ cacheFile ) || $ this -> cache -> isModified ( ) ) { $ builder = $ this -> createContainerBuilder ( ) ; foreach ( $ this -> komponents as $ komponent ) { $ komponent -> build ( $ builder ) ; } foreach ( $ loader as $ module ) { $ module -> build ( $ builder ) ; } $ this -> build ( $ builder ) ; if ( $ this -> isInstrumentationEnabled ( ) ) { $ manager = $ this -> getManifest ( ) ; } else { $ manager = new ReflectionTypeInfoManager ( ) ; } $ compiler = new ContainerCompiler ( $ manager , $ containerTypeName ) ; $ code = $ compiler -> compile ( $ builder , $ proxyPath , $ scopedProxies ) ; Filesystem :: writeFile ( $ cacheFile , $ code ) ; } require_once $ cacheFile ; return new $ containerTypeName ( $ this -> getContainerParams ( ) ) ; }
Create the DI container instance.

@param ScopeLoader $scopes
@return ContainerInterface
Create the DI container instance .