ZF1 Doctrine2服务层

时间:2011-09-05 17:37:09

标签: php zend-framework design-patterns doctrine-orm

我正在寻找一个如何使用Zend Framework和Doctrine2正确实现服务层的一个很好的例子

我见过一些实现,但是在实例化服务时,所有这些实现都可以从控制器访问EM,我认为这可能是错误的?

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

我也到this project但不确定如何实现它:

由于

1 个答案:

答案 0 :(得分:1)

使用帮助程序就像服务工厂一样:

  • 当您在Front Controller中注册实例时,需要创建一个Action Helper并在其上注入EntityManager。
  • 此Action Helper在direct()方法中接收工厂应创建的服务类的名称作为参数。
    • 在此方法中,您应该尝试实例化所请求的服务类,并将其返回(如果找不到相同的服务,则抛出异常)。
  • 让您的服务类在构造函数中接收EntityManager作为参数,并在工厂构建期间注入它。

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

SomeController extends Zend_Controller_Action {

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