/**
  * @param HelperPluginManager $plugins
  * @param ContainerInterface $container
  * @return HelperPluginManager
  */
 private function injectOverrideFactories(HelperPluginManager $plugins, ContainerInterface $container)
 {
     $urlFactory = $this->createUrlHelperFactory($container);
     $plugins->setFactory(ViewHelper\Url::class, $urlFactory);
     $plugins->setFactory('zendviewhelperurl', $urlFactory);
     $basePathFactory = $this->createBasePathHelperFactory($container);
     $plugins->setFactory(ViewHelper\BasePath::class, $basePathFactory);
     $plugins->setFactory('zendviewhelperbasepath', $basePathFactory);
     return $plugins;
 }
 /**
  * @param ContainerInterface $container
  * @throws \RuntimeException
  * @return HelperPluginManager
  */
 public function __invoke(ContainerInterface $container)
 {
     $helperPluginManager = new HelperPluginManager();
     $config = $container->has('config') ? $container->get('config') : [];
     if (isset($config['templates']['plugins'])) {
         foreach ($config['templates']['plugins'] as $pluginName => $serviceName) {
             $helperPluginManager->setFactory($pluginName, function () use($container, $serviceName) {
                 return $container->get($serviceName);
             });
         }
     }
     return $helperPluginManager;
 }
 /**
  * Inject override factories into the plugin manager.
  *
  * @param HelperPluginManager $plugins
  * @param ContainerInterface $services
  * @return HelperPluginManager
  */
 private function injectOverrideFactories(HelperPluginManager $plugins, ContainerInterface $services)
 {
     // Configure URL view helper
     $urlFactory = $this->createUrlHelperFactory($services);
     $plugins->setFactory(ViewHelper\Url::class, $urlFactory);
     $plugins->setFactory('zendviewhelperurl', $urlFactory);
     // Configure base path helper
     $basePathFactory = $this->createBasePathHelperFactory($services);
     $plugins->setFactory(ViewHelper\BasePath::class, $basePathFactory);
     $plugins->setFactory('zendviewhelperbasepath', $basePathFactory);
     // Configure doctype view helper
     $doctypeFactory = $this->createDoctypeHelperFactory($services);
     $plugins->setFactory(ViewHelper\Doctype::class, $doctypeFactory);
     $plugins->setFactory('zendviewhelperdoctype', $doctypeFactory);
     return $plugins;
 }
 /**
  * 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);
 }
 /**
  * {@inheritdoc}
  */
 protected function setUp()
 {
     $this->viewHelperPluginManager = new HelperPluginManager();
     $this->viewHelperPluginManager->setFactory('hangerSnippet', 'HangerSnippet\\Service\\SnippetHelperServiceFactory');
 }