2011-09-05 52 views
1

我正在寻找的是如何正确地实现与Zend框架服务层一个很好的例子,Doctrine2ZF1 Doctrine2服务层

我已经看到了一些实现,但所有的人都从控制器时访问EM实例化服务,我认为这可能是错误的或不是?

〔实施例: http://cobbweb.me/2010/11/integrate-doctrine-2-zend-framework-application/

我也得到了this project但真的不知道如何实现它:

感谢

+0

真的没有“错误”。主要是你是否想要或需要通过引入其他用于代替EM的其他东西来使你的架构更复杂(例如服务定位器,工厂等) –

+0

@JaniHartikainen嗯,你可能会谈论zf2。示例链接很好起点,我以前用过它。我所能说的是前往github并下载一些情侣存储库。 Chekout这些guyz #dynamicguy #luxemate #szjani #cobbweb和... –

回答

1

使用辅助作用就像一个工厂服务:

  • 当您在Fron中注册实例时,您需要创建一个Action Helper并在其上注入EntityManager t控制器。
  • 此动作助手在direct()方法中接收工厂应创建的服务类的名称作为参数。
    • 在这个方法里面,你应该尝试实例化所请求的服务类,然后返回它(或者如果找不到它,则抛出异常)。
  • 让你的服务类作为参数在构造函数中接收EntityManager并在工厂建造期间注入它。

其余的应该已经清楚了。在你的控制器中,你只需要使用类似的东西:

SomeController extends Zend_Controller_Action { 

    //... 
    public function someAction() 
    { 
     $myService = $this->_helper->service('MyService'); 
     $myService->doSomething(); 
    } 
}