为什么大型开源 PHP 项目不使用 MVC?
我很好奇,为什么所有较大的开源 PHP 项目,似乎都没有使用 MVC 模式,并且所有关于 SO 的帖子都提倡它的使用?
I am curious, why all the larger open source PHP projects, it seems none of them use the MVC pattern and all the post on SO promote it's use?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
phpBB 和 PHPMyAdmin(以及 PHPlist、SquirrelMail 等)都是源自 PHP3 和 PHP4 的非常古老的代码库。在大多数情况下,它们没有被重写以使用 MVC 甚至 OO 等技术。 PHP5 之前的 PHP 编码约定主要是过程性的,应用程序逻辑与表示和数据库逻辑混合在一起的情况很常见。
事实上,PHP 语言鼓励混合表示和逻辑,因为 PHP 本身就是一种模板语言。随着面向对象支持的改进,这些编码方法变得越来越不受欢迎。
然而,较新或快速开发的代码库(例如 Drupal、WordPress 和 Facebook API)确实使用了现代模式。
phpBB and PHPMyAdmin, (and PHPlist, SquirrelMail and others) are all very old code-bases originating on PHP3 and PHP4. They have not been rewritten to use techniques like MVC or even OO in most cases. PHP coding conventions prior to PHP5 were mainly procedural and it was very common to find application logic inter-mingled with presentation and database logic.
In fact, the PHP language encourages inter-mingling presentation and logic since PHP is itself a templating language. As the OO support improved, those coding methods are becoming increasingly discouraged.
Newer or rapidly developed code-bases like Drupal, WordPress and the Facebook API do use modern patterns, however.
其中大部分已经基于非MVC php,并且它有效。虽然我是 MVC symfony 的支持者,但我可以理解为什么他们更改了代码库以使其成为 MVC。
Most of those were already based in nonMVC php, and it worked. Although I am supporter of MVC symfony I can see why they'd changed the codebase to make it MVC.