我正在切换到Symfony我正在开发的项目,但是我需要一些关于如何在模型和使用原则时构建文件的建议。
我有一个我使用的自定义框架,它反过来使用MVC模型。几乎所有的MYSQL数据库查询都存储在模型中,我通过控制器访问它们。
现在看完Symfony2后,我的解释是Symfony中的“模型”文件称为Servies。它是否正确?
我还生成了许多与我的MYSQL数据库对应的实体。我的问题是我将自定义Doctrine查询放在服务文件中还是在Entity文件中创建?
我有点不确定如何构建它。
由于
答案 0 :(得分:4)
几乎所有的MYSQL数据库查询都存储在模型中
那很糟糕,但我稍后会提到它。
现在看完Symfony2之后,我的解释是"模型" Symfony中的文件称为Servies。它是否正确?
查询应该在存储库中完成,或者在某些情况下在服务中完成。 如果您的查询返回实体,那么它应该是存储库。
我的问题是我将自定义Doctrine查询放在Service文件中还是在Entity文件中创建?
实体应该是纯PHP对象。他们不应该依赖任何东西而不是其他实体。实体实际上对数据库一无所知。它是纯面向对象的业务逻辑。
同样,所有数据库查询都应该在存储库或服务中。
我建议首先阅读Symfony Book,了解" Symfony方式" 的工作原理。
答案 1 :(得分:1)
Symfony是not MVC框架:
Symfony2实际上是为Controller部分提供工具,View部分,而不是Model部分[...] Symfony2是一个HTTP框架;它是一个请求/响应框架。
这很棒。 Symfony允许您按照自己的意愿制作模型,不受任何限制。 Doctrine(ORM和/或DBAL)是一组独立的库。您可以使用任何其他库,或构建自己的持久层抽象,或通过PDO / MySQLi /等使用本机SQL。
服务只是在容器中注册并具有一些依赖关系的对象。服务可以做任何事情。它们可以代表您的模型,但不是必需的。