AcMailer\Service\Factory\MailServiceAbstractFactory::createRenderer PHP Method

createRenderer() protected method

protected createRenderer ( Interop\Container\ContainerInterface $container ) : Zend\View\Renderer\RendererInterface
$container Interop\Container\ContainerInterface
return Zend\View\Renderer\RendererInterface
    protected function createRenderer(ContainerInterface $container)
    {
        // Try to return the configured renderer. If it points to an undefined service, create a renderer on the fly
        $serviceName = $this->mailOptions->getRenderer();
        try {
            $renderer = $container->get($serviceName);
            return $renderer;
        } catch (ServiceNotFoundException $e) {
            // In case the renderer service is not defined, try to construct it
            $vmConfig = $this->getSpecificConfig($container, 'view_manager');
            $renderer = new PhpRenderer();
            // Check what kind of view_manager configuration has been defined
            if (isset($vmConfig['template_map']) && isset($vmConfig['template_path_stack'])) {
                // If both a template_map and a template_path_stack have been defined, create an AggregateResolver
                $pathStackResolver = new TemplatePathStack();
                $pathStackResolver->setPaths($vmConfig['template_path_stack']);
                $resolver = new AggregateResolver();
                $resolver->attach($pathStackResolver)->attach(new TemplateMapResolver($vmConfig['template_map']));
                $renderer->setResolver($resolver);
            } elseif (isset($vmConfig['template_map'])) {
                // Create a TemplateMapResolver in case only the template_map has been defined
                $renderer->setResolver(new TemplateMapResolver($vmConfig['template_map']));
            } elseif (isset($vmConfig['template_path_stack'])) {
                // Create a TemplatePathStack resolver in case only the template_path_stack has been defined
                $pathStackResolver = new TemplatePathStack();
                $pathStackResolver->setPaths($vmConfig['template_path_stack']);
                $renderer->setResolver($pathStackResolver);
            }
            // Create a HelperPluginManager with default view helpers and user defined view helpers
            $renderer->setHelperPluginManager($this->createHelperPluginManager($container));
            return $renderer;
        }
    }