Esempio n. 1
0
 /**
  * Get engine by it's type.
  *
  * @param string $engine
  * @param bool   $reload If true engine will receive new instance of loader and enviroment.
  * @return EngineInterface
  */
 public function engine($engine, $reload = false)
 {
     if (!isset($this->engines[$engine])) {
         $parameters = $this->config->engineParameters($engine);
         $parameters['loader'] = $this->loader($engine);
         $parameters['environment'] = $this->environment();
         //We have to create an engine
         $benchmark = $this->benchmark('engine', $engine);
         try {
             $this->engines[$engine] = $this->container->make($this->config->engineClass($engine), $parameters);
         } finally {
             $this->benchmark($benchmark);
         }
         $reload = true;
     }
     //Configuring engine
     if ($reload) {
         $this->engines[$engine]->setLoader($this->loader($engine));
         $this->engines[$engine]->setEnvironment($this->environment());
     }
     return $this->engines[$engine];
 }