Symfony2创建模型

Iva*_*van 1 symfony

阅读Symfony文档我没有看到关于模型的讨论.

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

我不想在我的控制器操作中使用DQL.MVC比什么呢?

我的想法是下一个:

  • 使用名称Models在bundle中创建新目录

  • 为该模型设置__ 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);
    }
Run Code Online (Sandbox Code Playgroud)

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

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

Eln*_*mov 5

将DQL保存在存储库中.并将您的域逻辑保留在服务层中.

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

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

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