0

我目前在我的模块中有以下设置。

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...')
4

3 回答 3

2

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

于 2012-07-29T22:03:32.440 回答
1

我有同样的问题

我注意到它是由我安装“ZendDeveloperTools”的新模块引起的

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

于 2012-08-02T15:42:40.480 回答
0

一个好地方可能是在你的layout.phtml.

如果你需要它是可配置的,你可以

  1. 把它放在你的layout.phtml
  2. 编写你自己的视图助手作为这个的适配器
  3. headTitle为视图助手创建自定义工厂
  4. 等到所有视图助手都可以由服务管理器配置 - 不仅仅是其中一些。看看以Zend\Mvc\Service\ViewHelperManagerFactory了解这一点。

我没有测试 3. & 4. - 我更喜欢 1. 因为这是一个view/phprenderer特定的问题。

于 2012-07-29T22:08:01.747 回答