大约有不计其数的“ PHP框架”。他们中的大多数人都遵循 MVC模式。欢迎克服osCommerce编码风格(处理逻辑与SQL和HTML大量混合),但是肯定会有更简单,更容易遵循的方法来获得可维护的应用程序设计。
最初的MVC概念针对的是GUI应用程序。对于Gtk / Python,相应地遵循它似乎是可行的。但是,PHP Web应用程序无法在实时视图(GUI元素)和持久性Controller运行时上运行。如果仅描述所使用的代码+目录分组或类命名,那肯定是一个误称。
“ MVC”似乎像是PHP框架的流行语。而且我实际上已经看到一个或两个成熟的PHP框架承认了这一点,但是无论如何都要重新定义该短语以匹配内部。
那一般是蛇油吗?为什么不使用更好的术语,而传播更明智的可维护PHP概念呢?
一些详尽的推理
为什么我怀疑PHP实现没有遵循真正的MVC模式:
模型:理论上,模型应该很胖并且包含业务逻辑,而控制器应该是瘦处理器(输入->输出)。实际上,PHP框架提倡浅层模型。CI和Symfony例如等同于Model == ORM。即使HTTP输入也由控制器处理,也不被视为模型。
视图:打折了AJAX的变通办法,网页上没有视图。PHP框架仍然可以抽出页面。该接口仍然有效地遵循普通的HTTP模型,与非MVC应用程序相比没有任何优势。(最后,没有一个广泛使用的php框架实际上不能输出到GUI Views而不是HTML。我见过一个可以运行Gtk / Console / Web的PHP库,但是这些框架不能。)
管理员:我不确定。控制器可能不需要在MVC模型中长时间运行并保持活动状态。但是,在PHP框架上下文中,它们主要是请求处理程序。并不是真正值得争论的事情,但是它听起来有点b琐。
会有更好的描述符吗?我见过像PMVC或HMVC这样的缩写词。尽管那里的描述变得更加模棱两可,但是也许这些描述会比当前的Web框架描述得少一些?