public function onRoute(MvcEvent $e) { $request = $e->getRequest(); if (!$request instanceof HttpRequest) { return; } $application = $e->getApplication(); $serviceLocator = $application->getServiceManager(); // Load the configuration for maintenance mode if ($serviceLocator->has('MaintenanceConfig')) { $config = $serviceLocator->get('MaintenanceConfig'); } else { $config = new Config(); } if (!$config->isEnabled()) { // Maintenance mode is disabled. return; } // Check the white list if ($request instanceof PhpRequest) { $address = $request->getServer('REMOTE_ADDR', null); } else { $address = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : null; } if (!empty($address)) { if (in_array($address, $config->getWhitelist())) { return; } } // Render the maintenance layout $renderer = new PhpRenderer(); if ($serviceLocator->has('ViewHelperManager')) { $renderer->setHelperPluginManager($serviceLocator->get('ViewHelperManager')); } $resolver = new TemplateMapResolver(); $resolver->add('maintenance', $config->getTemplate()); $renderer->setResolver($resolver); $content = $renderer->render('maintenance'); // Set the response $response = $e->getResponse(); if (!$response instanceof HttpResponse) { $response = new HttpResponse(); } $statusCode = $config->getStatusCode(); $response->setStatusCode($statusCode); if ($statusCode === 503 && !$response->getHeaders()->has('Retry-After')) { $retryDate = $config->getRetryAfter(); if ($retryDate instanceof DateTime) { $retryAfter = new RetryAfter(); $retryAfter->setDate($retryDate); $response->getHeaders()->addHeader($retryAfter); } } $response->setContent($content); $e->setResponse($response); // Return the response return $response; }
/** * Sets up the fixture, for example, opens a network connection. * This method is called before a test is executed. * * @return void */ protected function setUp() { $serviceManager = Registry::get('Application')->getServiceManager(); $this->renderer = new PhpRenderer(); $renderer = $serviceManager->get('Zend\\View\\Renderer\\PhpRenderer'); $this->renderer->setHelperPluginManager($renderer->getHelperPluginManager()); $serviceManager->setAllowOverride(true); $serviceManager->setService('currentDocument', DocumentModel::fromArray(array('id' => 1))); $serviceManager->setAllowOverride(false); $this->object = $this->renderer->plugin('modulePlugin'); $this->module = ModuleModel::fromArray(array('name' => 'Blog')); $this->module->save(); }
/** * Sets up the fixture, for example, opens a network connection. * This method is called before a test is executed. * * @return void */ protected function setUp() { $this->view = ViewModel::fromArray(array('name' => 'View Name', 'identifier' => 'View identifier', 'description' => 'View Description', 'content' => 'View Content')); $this->view->save(); $this->layout = LayoutModel::fromArray(array('name' => 'Layout Name', 'identifier' => 'Layout identifier', 'description' => 'Layout Description', 'content' => 'Layout Content')); $this->layout->save(); $this->user = UserModel::fromArray(array('lastname' => 'User test', 'firstname' => 'User test', 'email' => '*****@*****.**', 'login' => 'test', 'user_acl_role_id' => 1)); $this->user->setPassword('test'); $this->user->save(); $this->documentType = DocumentTypeModel::fromArray(array('name' => 'Document Type Name', 'description' => 'Document Type description', 'icon_id' => 1, 'defaultview_id' => $this->view->getId(), 'user_id' => $this->user->getId())); $this->documentType->save(); $this->document = DocumentModel::fromArray(array('name' => 'Document name', 'url_key' => 'url-key', 'status' => DocumentModel::STATUS_ENABLE, 'show_in_nav' => true, 'user_id' => $this->user->getId(), 'document_type_id' => $this->documentType->getId(), 'view_id' => $this->view->getId(), 'layout_id' => $this->layout->getId(), 'parent_id' => null)); $this->document->save(); $serviceManager = Registry::get('Application')->getServiceManager(); $this->renderer = new PhpRenderer(); $renderer = $serviceManager->get('Zend\\View\\Renderer\\PhpRenderer'); $this->renderer->setHelperPluginManager($renderer->getHelperPluginManager()); $serviceManager->setAllowOverride(true); $serviceManager->setService('currentDocument', $this->document); $serviceManager->setAllowOverride(false); $this->object = new CommentForm(); $this->module = ModuleModel::fromArray(array('name' => 'Blog')); $this->module->save(); $this->boostrap = new Module(); $this->boostrap->install(); }
public function testApplyViewHelpers() { $config = Bootstrap::getServiceManager()->get('Config'); $helperPluginManager = new HelperPluginManager(); $listener = new ViewHelperListener($this->layoutUpdater, $helperPluginManager, $config['con-layout']['view_helpers']); $mvcEvent = new \Zend\Mvc\MvcEvent(); $renderer = new PhpRenderer(); $renderer->setHelperPluginManager($helperPluginManager); $basePath = $helperPluginManager->get('basePath'); $basePath->setBasePath('/assets'); $basePathAssetPreparer = new BasePath($basePath); $listener->addAssetPreparer('headLink', $basePathAssetPreparer); /* @var $headLink HeadLink */ $headLink = $helperPluginManager->get('headLink'); /* @var $headScript HeadScript */ $headScript = $helperPluginManager->get('headScript'); /* @var $doctype \Zend\View\Helper\Doctype */ $doctype = $helperPluginManager->get('doctype'); /* @var $headTitle HeadTitle */ $headTitle = $helperPluginManager->get('headTitle'); /* @var $headMeta HeadMeta */ $headMeta = $helperPluginManager->get('headMeta'); $headMeta->setView($renderer); $listener->applyViewHelpers($mvcEvent); $expected = '<link href="/assets/css/test.css" media="screen" rel="stylesheet" type="text/css">' . PHP_EOL . '<link href="/assets/css/main.css" media="screen" rel="stylesheet" type="text/css">'; $this->assertEquals($expected, $headLink->toString()); $expected = '<script type="text/javascript" src="/js/jquery.min.js"></script>' . PHP_EOL . '<script type="text/javascript" src="/js/jquery-ui.min.js"></script>' . PHP_EOL . '<!--[if lt IE 9]><script type="text/javascript" src="/js/modernizr.js"></script><![endif]-->' . PHP_EOL . '<script type="text/javascript" src="/js/functions.js"></script>'; $this->assertEquals($expected, $headScript->toString()); $this->assertEquals('<!DOCTYPE html>', (string) $doctype); $headTitle->setSeparator(' | '); $expected = '<title>First | My Title | Another Title</title>'; $this->assertEquals($expected, $headTitle->toString()); $expected = '<meta charset="utf8">' . PHP_EOL . '<meta name="description" content="My description">' . PHP_EOL . '<meta name="keywords" content="keyword1, keyword2, keyword3">'; $this->assertEquals($expected, $headMeta->toString()); }
/** * @param ContainerInterface $container * @param string $name * @param null|array $options * @return PhpRenderer */ public function __invoke(ContainerInterface $container, $name, array $options = null) { $renderer = new PhpRenderer(); $renderer->setHelperPluginManager($container->get('ViewHelperManager')); $renderer->setResolver($container->get('ViewResolver')); return $renderer; }
public function setUp() { $this->wrapperHelper = new Wrapper(); $view = new PhpRenderer(); $view->setHelperPluginManager(new HelperPluginManager()); $this->wrapperHelper->setView($view); }
/** * @outputBuffering disabled */ public function testCanRenderFieldsets() { $this->expectOutputRegex('/<form(.*)<fieldset(.*)<\\/fieldset>(.*)<fieldset(.*)<\\/fieldset>(.*)<\\/form>/'); $form = new NetsensiaForm(); $form->addHidden('test1', 'testvalue'); $hidden = new Element\Hidden('asdasd'); $hidden->setValue('123'); $form->add($hidden); $element1 = new Text('testelement1'); $element1->setLabel('Test Element'); $element1->setAttribute('icon', 'pencil'); $element2 = new Text('testelement2'); $element2->setLabel('Test Element 2'); $element2->setAttribute('icon', 'pencil'); $fieldset1 = new Fieldset('testfieldset1'); $fieldset1->add($element1); $fieldset2 = new Fieldset('testfieldset2'); $fieldset2->add($element2); $form->add($fieldset1); $form->add($fieldset2); $helpers = new HelperPluginManager(); $helpers->setService('formElement', new FormElement()); $view = new PhpRenderer(); $view->setHelperPluginManager($helpers); $viewHelper = new BootstrapForm(); $viewHelper->setView($view); $viewHelper($form, 'testform', '/'); }
/** * @param ContainerInterface $container * * @return PhpRenderer */ public function __invoke(ContainerInterface $container) { $helper = $container->get(HelperPluginManager::class); $renderer = new PhpRenderer(); $renderer->setHelperPluginManager($helper); return $renderer; }
public function testCompatibilityWithZF2View() { $renderer = new PhpRenderer(); $helpers = new HelperPluginManager(); $name = $this->jobleadsHelper->getName(); $helpers->setInvokableClass($name, get_class($this->jobleadsHelper)); $renderer->setHelperPluginManager($helpers); $this->assertEquals(self::EXPECTED_RETURN, $renderer->{$name}()); }
/** * Check renderer, create if not exists * Copy helper plugin manager from application service manager * * @return \Gc\View\Renderer */ protected function checkRenderer() { if (is_null($this->renderer)) { $this->renderer = new PhpRenderer(); $renderer = Registry::get('Application')->getServiceManager()->get('Zend\\View\\Renderer\\PhpRenderer'); $this->renderer->setHelperPluginManager(clone $renderer->getHelperPluginManager()); $this->renderer->setResolver(new TemplatePathStack()); } return $this; }
public function createService(ServiceLocatorInterface $serviceLocator) { $renderer = new PhpRenderer(); $helperManager = $serviceLocator->get('ViewHelperManager'); $resolver = $serviceLocator->get('ViewResolver'); $renderer->setHelperPluginManager($helperManager); $renderer->setResolver($resolver); $model = $serviceLocator->get('Application')->getMvcEvent()->getViewModel(); $modelHelper = $renderer->plugin('view_model'); $modelHelper->setRoot($model); return $renderer; }
/** * @param ContainerInterface $container * @return PhpRenderer */ public function __invoke(ContainerInterface $container) { $config = $container->get('config'); $viewHelperPluginManager = $container->get(HelperPluginManager::class); // Create the engine instance: $renderer = new PhpRenderer(); // Configure it: $resolver = new Resolver\AggregateResolver(); $resolver->attach(new Resolver\TemplateMapResolver($config['templates']), 100); $renderer->setResolver($resolver); $renderer->setHelperPluginManager($viewHelperPluginManager); return $renderer; }
public function testGenerateViewHelpers() { $config = (new Module())->getConfig(); $helperPluginManager = new HelperPluginManager(); $helperPluginManager->setServiceLocator(new ServiceManager()); $filterManager = new FilterPluginManager(); $basePath = $helperPluginManager->get('basePath'); $basePath->setBasePath('/assets'); $basePathFilter = new BasePathFilter($basePath); $filterManager->setService('basePath', $basePathFilter); $cacheBusterFilter = new CacheBusterFilter(__DIR__ . '/_files'); $filterManager->setService('cacheBuster', $cacheBusterFilter); $generator = new ViewHelperGenerator($filterManager, $helperPluginManager, $config['con-layout']['view_helpers']); $renderer = new PhpRenderer(); $renderer->setHelperPluginManager($helperPluginManager); /* @var $headLink HeadLink */ $headLink = $helperPluginManager->get('headLink'); $headLinkProxy = new HeadLinkProxy($headLink); $helperPluginManager->setService(get_class($headLinkProxy), $headLinkProxy); /* @var $headScript HeadScript */ $headScript = $helperPluginManager->get('headScript'); $headScriptProxy = new HeadScriptProxy($headScript); $helperPluginManager->setService(get_class($headScriptProxy), $headScriptProxy); /* @var $doctype Doctype */ $doctype = $helperPluginManager->get('doctype'); $doctype('HTML5'); /* @var $headTitle HeadTitle */ $headTitle = $helperPluginManager->get('headTitle'); $headTitleProxy = new HeadTitleProxy($headTitle); $helperPluginManager->setService(get_class($headTitleProxy), $headTitleProxy); /* @var $headMeta HeadMeta */ $headMeta = $helperPluginManager->get('headMeta'); $headMetaProxy = new HeadMetaProxy($headMeta); $helperPluginManager->setService(get_class($headMetaProxy), $headMetaProxy); $headMeta->setView($renderer); $generator->generate($this->getLayoutStructure()); foreach (['/assets/css/test.css', '/assets/css/main.css'] as $expected) { $this->assertContains($expected, $headLink->toString()); } foreach (['jquery.min.js', 'jquery-ui.min.js'] as $expected) { $this->assertContains($expected, $headScript->toString()); } $this->assertEquals('<!DOCTYPE html>', (string) $doctype); $headTitle->setSeparator(' | '); $expected = 'First | My Title | Another Title'; $this->assertContains($expected, $headTitle->toString()); $contains = ['charset="utf8"', 'name="description" content="My description"', 'name="keywords" content="keyword1, keyword2, keyword3"']; foreach ($contains as $expected) { $this->assertContains($expected, $headMeta->toString()); } }
/** * * @return \Zend\View\View */ public function getView() { if ($this->view) { return $this->view; } $helperManager = $this->serviceLocator->get('ViewHelperManager'); $resolver = $this->serviceLocator->get('ViewResolver'); $renderer = new PhpRenderer(); $renderer->setHelperPluginManager($helperManager); $renderer->setResolver($resolver); $rendererStrategy = new PhpRendererStrategy($renderer); $this->view = new View(); $this->view->setEventManager($this->serviceLocator->get('EventManager')); $this->view->getEventManager()->attach($rendererStrategy); return $this->view; }
public function testInvoke() { $helper = new DisplayImage(); $helper->setAttributes(['alt' => 'hello']); $renderer = new PhpRenderer(); $helpers = new HelperPluginManager(); $renderer->setHelperPluginManager($helpers); $doctype = $this->getMock('Zend\\View\\Helper\\Doctype'); $doctype->expects($this->once())->method('isXhtml')->will($this->returnValue(true)); $helpers->setService('doctype', $doctype); $imgUrl = $this->getMockBuilder('HtImgModule\\View\\Helper\\ImgUrl')->disableOriginalConstructor()->getMock(); $imgUrl->expects($this->once())->method('__invoke')->will($this->returnValue('app')); $helpers->setService('HtImgModule\\View\\Helper\\ImgUrl', $imgUrl); $helper->setView($renderer); $this->assertEquals('<img alt="hello" src="app" />', $helper('asdfsadf', 'asdfasfd')); $this->assertEquals($helper, $helper()); }
/** * @param ServiceLocatorInterface $serviceLocator * @return array|object|PhpRenderer */ protected function getRenderer(ServiceLocatorInterface $serviceLocator) { // Check if a view renderer is available and return it if ($serviceLocator->has('ViewRenderer')) { return $serviceLocator->get('ViewRenderer'); } // Create new PhpRenderer $renderer = new PhpRenderer(); // Set the view script resolver if available if ($serviceLocator->has('Zend\\View\\Resolver\\AggregateResolver')) { $renderer->setResolver($serviceLocator->get('Zend\\View\\Resolver\\AggregateResolver')); } // Set the view helper manager if available if ($serviceLocator->has('ViewHelperManager')) { $renderer->setHelperPluginManager($serviceLocator->get('ViewHelperManager')); } // Return the new PhpRenderer return $renderer; }
/** * @param $name * @param $path * @return View */ private function createView($name, $path) { $ar = new Resolver\AggregateResolver(); $helper = $this->helpers; $map = new Resolver\TemplateMapResolver(array($name => $path)); $ar->attach($map); foreach ($this->resolvers as $r) { $ar->attach($r); } $renderer = new PhpRenderer(); $renderer->setHelperPluginManager($helper); $renderer->setResolver($ar); $strategy = new PhpRendererStrategy($renderer); $view = new View(); $view->setEventManager(clone $this->events); $view->setResponse(new Response()); $view->getEventManager()->attach($strategy); return $view; }
/** * Create, configure and return the email renderer. * * @see FactoryInterface::createService() * @return \Zend\View\Renderer\RendererInterface */ public function createService(ServiceLocatorInterface $serviceLocator) { $config = $serviceLocator->get('config'); if (empty($config['uj']['mail']['renderer'])) { throw new RuntimeException('Config required in order to create \\Uj\\Mail\\Renderer.' . 'required config key: $config["uj"]["mail"]["renderer"].'); } $rendererConfig = $config['uj']['mail']['renderer']; $resolver = new AggregateResolver(); if (isset($rendererConfig['templateMap'])) { $resolver->attach(new TemplateMapResolver($rendererConfig['templateMap'])); } if (isset($rendererConfig['templatePathStack'])) { $pathStackResolver = new TemplatePathStack(); $pathStackResolver->setPaths($rendererConfig['templatePathStack']); $resolver->attach($pathStackResolver); } $renderer = new PhpRenderer(); $renderer->setHelperPluginManager($serviceLocator->get('ViewHelperManager')); $renderer->setResolver($resolver); return $renderer; }
public function testViewHelperPersist() { $view = new PhpRenderer(); $view->setHelperPluginManager($this->serviceManager->get('ViewHelperManager')); $view->dojo()->activate(); $headLink = $view->headLink(); $this->assertEquals('js/dojo_rel/dojo/resources/dojo.css', $headLink[0]->href); $this->assertEquals('screen', $headLink[0]->media); $this->assertEquals('stylesheet', $headLink[0]->rel); $this->assertEquals('text/css', $headLink[0]->type); $this->assertEquals('js/dojo_rel/dijit/themes/claro/claro.css', $headLink[1]->href); $this->assertEquals('screen', $headLink[1]->media); $this->assertEquals('stylesheet', $headLink[1]->rel); $this->assertEquals('text/css', $headLink[1]->type); $headScript = $view->headScript(); $this->assertEquals('async: true, baseUrl: "js/dojo_rel/dojo"', $headScript[0]->attributes['data-dojo-config']); $this->assertEquals('js/dojo_rel/dojo/dojo.js', $headScript[0]->attributes['src']); $this->assertEquals('text/javascript', $headScript[0]->type); $this->assertEquals("require(['dojo/parser', 'dojo/domReady!'], function(parser) {parser.parse();})", $headScript[1]->source); $this->assertEquals('text/javascript', $headScript[1]->type); $this->assertEquals('claro', $view->dojo()->getTheme()); }
public function createService(ServiceLocatorInterface $serviceLocator) { /* @var $config ModuleOptions */ $config = $serviceLocator->get('Config'); if ($serviceLocator->has('ViewRenderer')) { return $serviceLocator->get('ViewRenderer'); } else { $renderer = new PhpRenderer(); // register helpers $helperManager = $serviceLocator->get('ViewHelperManager'); if (isset($config['esco_mail']['base_uri']) && !empty($config['esco_mail']['base_uri'])) { $urlHelper = $helperManager->get('Url'); $httpRouter = $serviceLocator->get('HttpRouter'); $httpRouter->setBaseUrl($config['esco_mail']['base_uri']); $urlHelper->setRouter($httpRouter); } $renderer->setHelperPluginManager($helperManager); // register resolver $resolver = $serviceLocator->get('ViewResolver'); $resolver->attach(new TemplateMapResolver($config['view_manager']['template_map'])); $renderer->setResolver($resolver); return $renderer; } }
private function createZendView(ServiceLocatorInterface $serviceLocator) { $config = $serviceLocator->get('Configuration'); if (isset($config['view_manager'], $config['view_manager']['template_path_stack'])) { $templatePaths = $config['view_manager']['template_path_stack']; } else { $templatePaths = []; } $resolver = new TemplatePathStack(['script_paths' => $templatePaths]); $phpRenderer = new PhpRenderer(); $phpRenderer->setResolver($resolver); $zendView = new ZendView(); $zendView->getEventManager()->attach(ViewEvent::EVENT_RENDERER, function () use($phpRenderer) { return $phpRenderer; }); // view helpers? if (isset($config['view_helpers'])) { $helperManagerConfig = new Config($config['view_helpers']); $pluginManager = new HelperPluginManager($helperManagerConfig); $pluginManager->setServiceLocator($serviceLocator); $phpRenderer->setHelperPluginManager($pluginManager); } return $zendView; }
<?php use Slim\Views\TwigExtension; use Slim\Views\Twig; use EchaleGas\Twig\Extension\ZendFormExtension; use Zend\View\Renderer\PhpRenderer; use Zend\Form\View\HelperConfig; use Zend\View\HelperPluginManager; use Psr\Log\LogLevel; use Monolog\Handler\StreamHandler; use Monolog\Logger; $app->container->singleton('twig', function () { $viewTig = new Twig(); $viewTig->parserOptions = ['charset' => 'utf-8', 'cache' => realpath('views/cache'), 'auto_reload' => true, 'strict_variables' => false, 'autoescape' => true]; $viewTig->twigTemplateDirs = [realpath('views')]; $viewTig->parserExtensions = [new TwigExtension()]; $renderer = new PhpRenderer(); $renderer->setHelperPluginManager(new HelperPluginManager(new HelperConfig())); $zendFormHelper = new ZendFormExtension($viewTig->getEnvironment(), $renderer); $viewTig->getEnvironment()->registerUndefinedFunctionCallback($zendFormHelper); return $viewTig; }); $app->container->singleton('log', function () { $logger = new Logger('echale-gas-app'); $logger->pushHandler(new StreamHandler('logs/app.log', LogLevel::DEBUG)); return $logger; }); $app->view($app->twig);
/** * Inject helpers into the PhpRenderer instance. * * If a HelperPluginManager instance is present in the container, uses that; * otherwise, instantiates one. * * In each case, injects with the custom url/serverurl implementations. * * @param PhpRenderer $renderer * @param ContainerInterface $container */ private function injectHelpers(PhpRenderer $renderer, ContainerInterface $container) { $helpers = $container->has(HelperPluginManager::class) ? $container->get(HelperPluginManager::class) : new HelperPluginManager(); $helpers->setFactory('url', function () use($container) { return new UrlHelper($container->get(RouterInterface::class)); }); $helpers->setInvokableClass('serverurl', ServerUrlHelper::class); $renderer->setHelperPluginManager($helpers); }
/** * Inject helpers into the PhpRenderer instance. * * If a HelperPluginManager instance is present in the container, uses that; * otherwise, instantiates one. * * In each case, injects with the custom url/serverurl implementations. * * @param PhpRenderer $renderer * @param ContainerInterface $container */ private function injectHelpers(PhpRenderer $renderer, HelperPluginManager $manager) { $manager->setFactory('url', function () use($container) { if (!$container->has(BaseUrlHelper::class)) { throw new Exception\MissingHelperException(sprintf('An instance of %s is required in order to create the "url" view helper; not found', BaseUrlHelper::class)); } return new UrlHelper($container->get(BaseUrlHelper::class)); }); $manager->setFactory('serverurl', function () use($container) { if (!$container->has(BaseServerUrlHelper::class)) { throw new Exception\MissingHelperException(sprintf('An instance of %s is required in order to create the "url" view helper; not found', BaseServerUrlHelper::class)); } return new ServerUrlHelper($container->get(BaseServerUrlHelper::class)); }); $renderer->setHelperPluginManager($manager); }
/** * Sets up the fixture, for example, opens a network connection. * This method is called before a test is executed. * * @return void */ protected function setUp() { $this->view = ViewModel::fromArray(array('name' => 'View Name', 'identifier' => 'View identifier', 'description' => 'View Description', 'content' => 'View Content')); $this->view->save(); $this->layout = LayoutModel::fromArray(array('name' => 'Layout Name', 'identifier' => 'Layout identifier', 'description' => 'Layout Description', 'content' => 'Layout Content')); $this->layout->save(); $this->user = UserModel::fromArray(array('lastname' => 'User test', 'firstname' => 'User test', 'email' => '*****@*****.**', 'login' => 'test', 'user_acl_role_id' => 1)); $this->user->setPassword('test'); $this->user->save(); $this->documentType = DocumentTypeModel::fromArray(array('name' => 'Document Type Name', 'description' => 'Document Type description', 'icon_id' => 1, 'defaultview_id' => $this->view->getId(), 'user_id' => $this->user->getId())); $this->documentType->save(); $this->document = DocumentModel::fromArray(array('name' => 'Document name', 'url_key' => 'url-key', 'status' => DocumentModel::STATUS_ENABLE, 'show_in_nav' => true, 'user_id' => $this->user->getId(), 'document_type_id' => $this->documentType->getId(), 'view_id' => $this->view->getId(), 'layout_id' => $this->layout->getId(), 'parent_id' => 0)); $this->document->save(); $this->object = new Documents(); $view = new View(); $view->resolver()->addPath(__DIR__ . '/_files/views'); $view->setHelperPluginManager(Registry::get('Application')->getServiceManager()->get('viewhelpermanager')); $this->object->setView($view); }
/** * @param ServiceLocatorInterface $sm * @return RendererInterface */ protected function createRenderer(ServiceLocatorInterface $sm) { // Try to return the configured renderer. If it points to an undefined service, create a renderer on the fly try { /** @var RendererInterface $renderer */ $renderer = $sm->get('mailviewrenderer'); return $renderer; } catch (ServiceNotFoundException $e) { // In case the renderer service is not defined, try to construct it $vmConfig = $this->getSpecificConfig($sm, '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($sm)); return $renderer; } }
/** * Test * * @return void */ public function testGetDocument() { $parent = new ViewModel(); $parent->setTemplate('layout'); $view = new View(); $renderer = Registry::get('Application')->getServiceManager()->get('Zend\\View\\Renderer\\PhpRenderer'); $view->setHelperPluginManager($renderer->getHelperPluginManager()); $view->plugin('view_model')->setRoot($parent); $view->resolver()->addPath(__DIR__ . '/_files/views'); $this->object->setView($view); $this->assertInstanceOf('Gc\\Document\\Model', $this->object->getDocument()); }