我目前正在开发基于浏览器的 MMO,并选择了 LAMP 堆栈,因为开始生产的成本极低(与 Windows + IIS + ASP.NET/C# + SQL Server 相比,尽管我有MSDN 通用)。但是我需要一个 PHP 框架,因为这不是一件容易的事。除了能够在 Linux 上运行之外,我不受任何限制,因为我将使用专用的云托管解决方案(以及用于开发的 VMWare 镜像)并可以根据需要进行配置。
无特定顺序:
- 它必须易于扩展;这是关键。如果游戏获得稳定的成功,它最终会超出主机提供的服务器容量,并且必须移动到多个负载平衡的服务器。以最小的努力就可以做到这一点至关重要。我知道这可能需要遵循严格的约定,所以如果您知道任何建议的框架,请解释需要什么。
- 它必须为所有核心任务提供模块:身份验证、ACL、数据库访问、MVC 等等。缺少一两个模块也可以,只要它们易于编写和集成即可。
- 它应该支持国际化。我认为任何 Web 框架都没有理由不提供无需程序员大量努力即可翻译应用程序和在语言之间切换的方法。
- 必须有很好的社区支持,最好还有商业支持。是的,我知道 QCodo/QCubed 非常好,但它还不够成熟,无法完成这项任务。
- 需要流畅的 AJAX 支持。框架是带有支持 AJAX 的小部件还是具有添加 AJAX 的简单方法都无关紧要,只要 AJAX 很容易实现即可。我计划使用 jQuery + Dojo 或单独使用其中之一 - 不确定。
- 如果它通常可靠且不干扰其他要求,那么在提高可读性并减轻大量工作时自动神奇地做事会特别好。 CakePHP 似乎就是这种情况。
我看过很多比较,我知道这是一场非常激烈的辩论。一般的答案是“尝试自己看看什么适合你”。但是,我不能说这项任务很容易,我希望您有构建具有类似要求的应用程序的经验。到目前为止,根据一般标准,我将 Zend 和 CakePHP 联系在一起,但是,所有知名框架都以某种方式提供相同的功能,但方法不同,每种方法各有优缺点。
编辑:
- 我对 MVC 有点陌生,但是,我愿意学习它,而且我不关心框架是否对 MVC 新手来说更容易。我有很多时间来学习 MVC 和您推荐的任何其他架构(或任何其他架构)。
- 我将使用 Zend 作为一个实用程序“框架”,即使它只是一个库的集合(尽管有人告诉我一些不错的库)。
- 目前的 PHP 竞争者是:CakePHP、Kohana、Zend。
最佳答案
我看到您已经研究过 Zend 和 CakePHP,但我想向您指出一个不同的方向。
如果我还在使用 PHP,我会使用 Kohana。他们采用 CodeIgniter 并以一种让 php 感觉更少基于文件而更多基于对象的方式 fork 它。他们有一个很棒的模板解决方案,并且还有用于您讨论的所有内容的模块,除了 ACL(我不知道那是什么,所以也许他们有)。
无论如何,我认为值得一试。
关于可扩展性
我注意到一些关于速度的对话。尽管我认为 Kohana 为我们处理事情的速度非常快,但我认为这与框架的关系不如与其他工具的关系那么大。
首先,我通过放弃 nginx 的 apache 提高了我的许多 php 应用程序的速度。 Nginx 与 PHP 运行为 fastcgi 更轻量级并且确实增加了 http://ukclasslist.com 的加载时间.我们仍然在本地使用 apache,并且在我们的服务器上运行的副本比本地版本更快。
如果您仍然在速度方面遇到问题,尤其是在抓取大块数据时,您应该研究一下内存缓存。
关于PHP框架问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2377297/