/**
  * Returns system DI container.
  * @return \SystemContainer
  */
 public function createContainer()
 {
     if ($cacheDir = $this->getCacheDirectory()) {
         $cache = new Cache(new Nette\Caching\Storages\PhpFileStorage($cacheDir), 'Nette.Configurator');
         $cacheKey = array($this->parameters, $this->files);
         $cached = $cache->load($cacheKey);
         if (!$cached) {
             $code = $this->buildContainer($dependencies);
             $cache->save($cacheKey, $code, array(Cache::FILES => $dependencies));
             $cached = $cache->load($cacheKey);
         }
         Nette\Utils\LimitedScope::load($cached['file'], TRUE);
     } elseif ($this->files) {
         throw new Nette\InvalidStateException("Set path to temporary directory using setTempDirectory().");
     } else {
         Nette\Utils\LimitedScope::evaluate($this->buildContainer());
         // back compatibility with Environment
     }
     $container = new $this->parameters['container']['class']();
     $container->initialize();
     Nette\Environment::setContext($container);
     // back compatibility
     return $container;
 }
Esempio n. 2
0
 /**
  * Returns system DI container.
  * @return \SystemContainer
  */
 public function createContainer()
 {
     $container = $this->createContainerFactory()->create();
     $container->initialize();
     if (class_exists('Nette\\Environment')) {
         Nette\Environment::setContext($container);
         // back compatibility
     }
     return $container;
 }
Esempio n. 3
0
 /**
  * Returns system DI container.
  * @return \SystemContainer|DI\Container
  */
 public function createContainer()
 {
     $cache = new Nette\Caching\Cache(new Nette\Caching\Storages\PhpFileStorage($this->getCacheDirectory()), 'Nette.Configurator');
     $cacheKey = array($this->parameters, $this->files);
     $cached = $cache->load($cacheKey);
     if (!$cached) {
         $code = $this->buildContainer($dependencies);
         $cache->save($cacheKey, $code, array($cache::FILES => $dependencies));
         $cached = $cache->load($cacheKey);
     }
     require_once $cached['file'];
     $container = new $this->parameters['container']['class']();
     $container->initialize();
     Nette\Environment::setContext($container);
     // back compatibility
     return $container;
 }
Esempio n. 4
0
 /**
  * Returns system DI container.
  * @return DI\Container
  */
 public function createContainer()
 {
     $loader = new DI\ContainerLoader($this->getCacheDirectory() . '/Nette.Configurator', $this->parameters['debugMode']);
     $class = $loader->load([$this->parameters, $this->files], [$this, 'generateContainer']);
     $container = new $class();
     foreach ($this->services as $name => $service) {
         $container->addService($name, $service);
     }
     $container->initialize();
     if (class_exists('Nette\\Environment')) {
         Nette\Environment::setContext($container);
         // back compatibility
     }
     return $container;
 }
Esempio n. 5
0
	/**
	 * @param string
	 */
	public function __construct($containerClass = 'Nette\DI\Container')
	{
		parent::__construct($containerClass);

		$container = $this->getContainer();

		// Back compatability
		Environment::setConfigurator($this);
		Environment::setContext($container);

		// Nella X-Powered
		@header("X-Powered-By: Nette Framework with Nella"); // @ - headers may have been sent

		// Upload dir (tmp files - Mupltiple File Uploader)
		if (isset($container->params['tempDir'])) {
			$container->params['uploadDir'] = $container->expand("%tempDir%/uploads");
		}

		// File storage dirs (upoaded images and other files)
		if (defined('STORAGE_DIR')) {
			$container->params['storageDir'] = realpath(STORAGE_DIR);
		} else {
			$container->params['storageDir'] = $container->expand("%appDir%/storage");
		}

		// Image cache dir (public folteder for images thumbnails and other formats)
		if (defined('IMAGE_CACHE_DIR')) {
			$container->params['imageCacheDir'] = realpath(IMAGE_CACHE_DIR);
		} else {
			$container->params['imageCacheDir'] = $container->expand("%wwwDir%/images");
		}

		// Namespace prefixes
		$container->params['namespaces'] = array(0 => 'App', 9 => 'Nella');
		// Templates dirs (application parts dirs)
		$container->params['templates'] = array(0 => $container->params['appDir'], 9 => NELLA_FRAMEWORK_DIR);
		// Flash message types
		$container->params['flashes'] = array(
			'success' => "success",
			'error' => "error",
			'info' => "info",
			'warning' => "warning",
		);

		// Set file upload temp dir
		ini_set('upload_tmp_dir', $container->params['uploadDir']);
		// Set session dir
		ini_set('session.save_path', $container->expand("%tempDir%/sessions"));

		// Init multilple file upload listener
		Forms\Controls\MultipleFileUpload::register(
			$container->httpRequest,
			$container->params['uploadDir']
		);

		$this->onAfterLoadConfig[] = function(Container $container) {
			// Load panels
			if (!$container->params['consoleMode'] && !$container->params['productionMode']) {
				$container->callbackPanel;
				$container->versionPanel;
				$container->translatorPanel;
				$container->debugPanel;
				$container->userPanel;
			}
		};
	}
Esempio n. 6
0
 /**
  * Returns system DI container.
  * @return DI\Container
  */
 public function createContainer()
 {
     $class = $this->loadContainer();
     $container = new $class();
     foreach ($this->services as $name => $service) {
         $container->addService($name, $service);
     }
     $container->initialize();
     if (class_exists(Nette\Environment::class)) {
         Nette\Environment::setContext($container);
         // back compatibility
     }
     return $container;
 }
Esempio n. 7
0
 /**
  * Returns system DI container.
  * @return \SystemContainer
  */
 public function createContainer()
 {
     $container = $this->createContainerFactory()->create();
     $container->initialize();
     Nette\Environment::setContext($container);
     // back compatibility
     return $container;
 }