Symfony2创建模型

时间:2013-09-15 15:43:08

标签: symfony

阅读Symfony文档我没有看到讨论模型

我想到的第一个想法是:我不想混淆业务逻辑

我不想在我的控制器操作中使用 DQL 。那么MVC比。

我的想法是下一个:

  • 在包中创建名为模型

  • 的新目录
  • 为该模型设置__ namespace __并且(使用)附加必要的Doctrine类

  • 在我的Model类中,我将DQL逻辑与Entity连接

接下来在控制器中使用当前模型。

只需简单的控制器操作就可以在控制器中混合使用DQL

  use Company\Bundle\Models\MyModel;

 public function getRecentMembersAction($max = 3)
    {
        $model = new Model() // get model
        $list = $model->getRecentMembers($max); // DQL

        // Render
        return $this->render('CompanyBundle:Controller.index.html.twig', array('list'=>$list);
    }

我的问题是这是一个好主意和良好做法吗?

SLOVED: http://docs.doctrine-project.org/en/latest/reference/annotations-reference.html#entity

1 个答案:

答案 0 :(得分:5)

将您的DQL保持在repositories。并将您的域逻辑保留在Service Layer

控制器层→服务层→存储库层

通过这种方式,您可以使用多种控制器类型 - HTML,REST,命令行 - 所有控制器类型都使用封装在服务层中的相同域逻辑。

存储库层封装了所有持久性功能,以便您可以将ORM存储库层与ODM存储库层或其他类型的存储库层交换 - 如Web服务调用,持久保存到文本文件等。