你有什么推荐吗?
谢谢...
从零开始构建。在优化时控制每一位有所帮助。Facebook甚至控制了它的PHP编译器:http://developers.facebook.com/blog/post/358/
不要使用框架,因为PHP已经是一个框架和模板引擎:http://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html
使用一些缓存库,如memcached。我不确定您是否可以在云上使用它,或者云可能提供自己的缓存系统。
如果你知道你很快就需要扩展它,那么最好使用现有的经过验证的框架,而不是从头开始构建自己的框架。这并不是为了可扩展性,而是为了简化以后的工作,并更有信心地确保样板代码足够好。
另一方面,如果你从未使用过任何提到的框架,你可能需要权衡一下需要克服初始学习曲线所需的时间。
在确保领域层与其他代码的耦合度尽可能小的同时,比平时投入更多的精力-这样你应该能够为其他层识别的问题留下改变的空间。
可以使用框架来快速启动应用程序,但要注意不要使用它们自己的CRUD实用程序(例如CI)。
如果决定使用ORM解决方案,则最好选择一个可以与许多框架配合使用的方案。
我会说不,因为今天有更好的语言。Python、Ruby和C#比PHP有更好的命名空间和开发工具。
然而,你真正的问题不是语言。而是数据库层,因为它会更加集中化。你可以使用memcached来减少数据库负载。如果你使用ORM,请检查它是否具有运行简单查询和运行批量插入或使用连接而不是懒加载查询以获取相关对象的所有能力。
你还应该使用队列来加速页面加载。如果你有可以在页面请求之外完成的缓慢操作,那么将它们推入队列并稍后处理,可能在不同的服务器上。电子邮件和图像大小调整是一个很好的例子。
如果你想要一个真正可扩展的Web应用程序,你将不得不走出Apache、MySQL的范围,并开始使用像Nginx和非关系型数据库这样的工具。
现在,最好的做法是不要过早地担心问题。只需确保您选择的任何框架都是松散耦合的,以便您可以执行诸如切换数据库层之类的操作。像瘟疫一样避免使用CodeIgniter,它根本不是模块化的,也没有ORM和非常差的表单库。我建议使用Django(Python),有许多公司提供云托管服务。我见过一家商店从PHP切换到Python,他们非常喜欢它。在选择托管时,不要认为必须锁定在PHP上。
编辑,回复Cartoonle Django。但如果你真的想要PHP,也许Symfony,但它以速度慢而闻名。Kohana就像CI一样,但更加社区驱动和面向对象,因此一些CodeIgniter的主要缺陷早在Kohana中就得到了解决。我也听说过Cake的好处,但从未尝试过。至于CodeIgniter,是的,很多人喜欢它,它很简单,但为了丑陋的快捷方式而放弃了很多好的软件模式。我曾经与它一起工作了一年,过了一段时间后,团队中的每个人都同意我们太多地重新发明轮子,需要其他东西。当你使用它一段时间后,问题开始浮出水面。我们辩论了一段时间,最终选择了Django。这是一个艰难的决定,但通过更高的生产力得到了回报。此外,Google也在使用它,我认为这说明了很多问题。
Python是计算机科学101课程和专业领域中使用的仅有语言之一。Python的目标之一是使计算机科学教学变得容易。它并不可怕,打开终端,输入python
,然后尝试一下。还有很多好用的工具,比如pip,类似于PHP-pear,但也可以与git、gzip、hg以及其他格式一起使用,除了美妙的Python包存储库。
此外,还有大量的Python包可供使用,我在PHP中几乎看不到这种情况。http://djangopackages.com/
至少通过完成教程来给它一个机会,只需要大约2个小时。它带有内置的Web服务器,因此除了Python本身之外,无需设置任何内容。