/** * 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()); }
/** * 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); }