/**
  * Configures the TemplateRenderingChain with the previously registered templating engines.
  *
  * @param DependencyInjectionContainer $dic
  * @param array                        $moduleConfig
  * @param array                        $globalConfig
  *
  * @throws ConfigurationException if no templating module was loaded.
  */
 public function configureDependencyInjection(DependencyInjectionContainer $dic, array $moduleConfig, array $globalConfig)
 {
     $engines = [];
     if (empty($moduleConfig[self::CONFIG_ENGINES])) {
         throw new ConfigurationException('The templating module itself was loaded, but there is no module ' . ' for the actual template engine present. Did you forget to load your templating module?');
     }
     //Create the instances of the template engine to be used with the TemplateRenderingChain
     foreach ($moduleConfig[self::CONFIG_ENGINES] as $engineClass) {
         $engines[] = $dic->make($engineClass);
     }
     $dic->setClassParameters(TemplateRenderingChain::class, ['templateEngines' => $engines]);
 }
 public function test500()
 {
     //setup
     //act
     /**
      * @var RequestProcessor $requestProcessor
      */
     $requestProcessor = $this->dic->make(ControllerRequestProcessor::class);
     $request = new ServerRequest('GET', '/exception');
     $response = new Response();
     $response = $requestProcessor->execute($request, $response);
     //assert
     $this->assertEquals(500, $response->getStatusCode());
     $this->assertEquals('Error!', $response->getBody()->getContents());
 }
Esempio n. 3
0
 /**
  * Load a module by class name.
  *
  * @param string                       $moduleClass The module class to load.
  * @param Module[]                     $modules     The list of already loaded modules.
  * @param array                        $moduleList  The complete module list.
  * @param DependencyInjectionContainer $dic         The dependency injection container to use for the module.
  *
  * @return void
  *
  * @throws ConfigurationException
  */
 private function loadModule($moduleClass, array &$modules, array $moduleList, DependencyInjectionContainer $dic)
 {
     /**
      * @var Module $module
      */
     $module = $dic->make($moduleClass);
     if (!$module instanceof Module) {
         throw new ConfigurationException(get_class($module) . ' was configured as a module, but doesn\'t implement ' . Module::class);
     }
     if (!\in_array($module, $modules)) {
         $dic->share($module);
         $this->loadRequiredModules($module, $modules, $moduleList, $dic);
         $modules[] = $module;
     }
 }
 /**
  * Create an array of filter objects from an array of filter class names.
  *
  * @param array                        $filterSpecification
  * @param DependencyInjectionContainer $dic
  *
  * @return array
  */
 private function makeFilters(array $filterSpecification, DependencyInjectionContainer $dic) : array
 {
     $filters = [];
     foreach ($filterSpecification as $requestFilterClass) {
         $filters[] = $dic->make($requestFilterClass);
     }
     return $filters;
 }
 protected function make()
 {
     return $this->dic->make($this->class);
 }