设置视图助手

时间:2012-07-29 18:05:27

标签: doctrine-orm zend-framework2

我目前在我的模块中进行了以下设置。

public function onBootstrap( EventInterface $e )
   {

      // You may not need to do this if you're doing it elsewhere in your
      // application
      $eventManager   = $e->getApplication()->getEventManager();

      $serviceManager = $e->getApplication()->getServiceManager();

      $moduleRouteListener = new ModuleRouteListener();
      $moduleRouteListener->attach( $eventManager );

      //TODO think about moving this to somewhere more appropriate
      $renderer = $serviceManager->get( 'Zend\View\Renderer\PhpRenderer' );
      $renderer->headTitle( 'uDare' )->setSeparator( ' - ' );

   }

有没有更好的方法来执行此操作或我应该附加的其他事件?

我问这个是因为我在尝试使用Doctrine2ORMModule时遇到了问题。

当我访问本地主机上的网页时,一切正常。但是当我跑步时

./vendor/bin/doctrine-module --verbose 
命令行上的

我收到错误说明以下

PHP Fatal error:  Uncaught exception 'Zend\ServiceManager\Exception\ServiceNotFoundException' 
with message 'Zend\ServiceManager\ServiceManager::get was unable to 
fetch or create an instance for Zend\View\Renderer\PhpRenderer' 
in /Library/WebServer/Documents/udare/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php:407
Stack trace:
#0 /Library/WebServer/Documents/udare/modules/Web/Module.php(56): Zend\ServiceManager\ServiceManager->get('Zend\View\Rende...')

3 个答案:

答案 0 :(得分:2)

最近合并到zf2中,这改变了控制台请求的呈现方式。似乎这些更改可能已经破坏了DoctrineORMModule CLI。请在github上提出一个问题,很快就会解决。

答案 1 :(得分:1)

我有同样的问题

我注意到它是由我安装“ZendDeveloperTools”

的新模块引起的

我从application.config.php文件中的模块加载中删除了它并修复了错误

答案 2 :(得分:0)

这个好地方可能就在你的layout.phtml

如果您需要它可配置,您可以

  1. 将其放入layout.phtml
  2. 将您自己的视图助手编写为适用于此
  3. 的适配器
  4. headTitle视图助手
  5. 创建自定义工厂
  6. 等到服务管理器可以配置所有视图帮助程序 - 不仅仅是其中一些。请查看Zend\Mvc\Service\ViewHelperManagerFactory以了解相关信息。
  7. 我没有测试过3.& 4. - 我更喜欢1.因为这是view / phprenderer特定问题。