goo*_*ing 4 php mysql oop model-view-controller frameworks
我正在阅读很多关于MVC的教程,所以我的问题是,一个完美的PHP MVC框架可以在Controller中进行数据库查询吗?据我了解,最舒服的方法是将所有数据库查询都放在Model中,对吧?如果我有POST或smth,我只是将POST传递给Model并且它会进行所有插入等等?
或者我错过了什么?如果Controller可以进行数据库查询,那么它会在哪种情况下?
没有控制器可能没有任何与数据库相关的代码 - 任何数据库查询都可以存储在MVC架构的模型中 - 控制器只能用于模型,但不能直接用于数据库
编辑:大多数框架将允许直接从Controller调用SQL - 但它不是MVC,而是一堆对象
小智 6
没有控制器必须不是IDEALLY和CONCEPTUALLY包含任何数据库查询.如果您在控制器本身中有一些查询,那么它将消除MVC架构的一些关键优势,例如Code Segregation等.
理想情况下,您的模型类(M)必须包含数据库查询以及通过数据库对象与数据库的任何交互.理想情况下,模型表示DB中的表或用于io的文件
视图(V)必须包含非常少的PHP的HTML.在大多数情况下,仅使用循环和条件语句
控制器类(C)必须包含应用程序的所有业务逻辑,错误处理程序等.
从维护,调试和代码理解方面维护MVC架构对于新开发人员的预期非常有用.如上所述,这些规范带来了许多好处.