我切换到Symfony的一个项目,我正在工作,但我需要一点建议,如何构建文件时,涉及到模型和使用理论。
我使用了一个自定义框架,它反过来使用MVC模型。我的MYSQL数据库查询几乎都存储在模型中,我通过控制器访问它们。
现在,在查看Symfony2之后,我的解释是,Symfony中的“模型”文件被称为Servies。这是正确的吗?
我还生成了一些与我的MYSQL数据库相对应的实体。我的问题是,我是将我的自定义Doctrine查询放在服务文件中,还是在实体文件中创建它们?
我有点不知道该怎么安排这个。
谢谢
发布于 2016-12-09 12:23:10
几乎我所有的MYSQL数据库查询都存储在模型中。
这很糟糕,但我稍后再提。
现在,在查看Symfony2之后,我的解释是,Symfony中的“模型”文件被称为Servies。这是正确的吗?
查询应该在存储库中完成,或者在某些情况下在服务中执行。如果查询返回实体,那么它肯定是存储库。
我的问题是,我是将我的自定义Doctrine查询放在服务文件中,还是在实体文件中创建它们?
实体应该是普通的PHP对象。他们不应该比其他实体更依赖任何东西。实体实际上根本不知道任何关于数据库的事情。它是纯面向对象的业务逻辑。
同样,所有DB查询都应该位于存储库或服务中。
我建议先看一下“塞弗尼之路”,了解一下“塞弗尼之路”是如何工作的。
发布于 2016-12-09 14:19:00
Symfony是不 MVC框架:
Symfony2实际上是为Controller部件、视图部分提供工具,而不是为模型部分提供工具。Symfony2是一个HTTP框架;它是一个请求/响应框架。
而且很棒。Symfony允许不受任何限制地根据您的意愿制作您的模型。Doctrine (ORM和/或DBAL)是一组单独的库。您可以使用任何其他库,也可以构建自己的持久性层抽象,也可以通过PDO/MySQLi/等等使用本机SQL。
服务只是一个在容器中注册并有一些依赖项的对象。服务机构可以做任何事。它们可以表示您的模型,但这不是一个要求。
https://stackoverflow.com/questions/41059653
复制相似问题