【问题标题】:Where do DQL statements live in an application that is using Zend Framework and DoctrineDQL 语句在使用 Zend Framework 和 Doctrine 的应用程序中的位置
【发布时间】:2010-06-11 23:09:03
【问题描述】:

在使用 Zend Framework 1.10 和 Doctrine 1.2 的应用程序中,如果我们的应用程序构建为具有服务层和网关(又名 Doctrine_Table)层,那么 DQL 语句应该位于何处。

看来我们的可能性包括:

1) 将 DQL 语句放置在服务层中,这在我们的应用程序层次结构中似乎有点太高,无法存储 DQL。

2) 将 DQL 语句放置在每个模型的表/网关中,这似乎有点多余,因为我们还需要通过服务层公开执行 getAllUsers() 等操作的 DQL 语句。

以下哪一个是更可取的设计?我们打算尽可能多地使用服务层,以便其他项目可能会消耗我们应用程序的各个部分。

【问题讨论】:

    标签: zend-framework orm doctrine


    【解决方案1】:

    在我们的项目中,我们将大部分查询放在服务层中,除非根本不需要服务。

    还有第三个选项,你没有提到,即将基本查询放在表中,然后将它们具体化到服务中:

    // in the service
    $q = $table->getSomeQuery();
    $q->addWhere(...)
      ->findBySome('name')
      ->execute();
    ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-17
      • 1970-01-01
      • 1970-01-01
      • 2010-11-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多