我已经被抛到了头-第一份新的工作,开发网页应用程序的PHP。我对PHP并不陌生,但我以前还没有开发过大规模的应用程序。我想知道如何组织我的发展,以避免设置自己在未来的问题。如何以合理的方式设计和架构我的应用程序,使它们能够在功能和性能方面随着时间的推移而扩展。我在想这样的事情:
我希望了解架构和应用程序设计模式、框架和方法的指针,它们允许我以可持续的方式来处理大规模的PHP应用程序开发。
发布于 2012-01-28 22:22:29
我参与的最新大规模项目的架构简图。
它只是一个基本的大纲,从实际的体系结构文档中改编而来,并以类似于典型n层方法与典型MVC方法相结合的方式呈现。如您所见,逻辑层和数据层是通过服务层连接的,更具体地说,休息是由凹槽 (一种不太知名的PHP框架)启发而来的。
我有三个框架:
正如其他答案所指出的,ORM总是有用的。我广泛地使用教条,您应该看看它的全新地图 for CouchDB和MongoDB。在大规模应用程序中,可伸缩性是必须的,您应该评估NoSQL解。
所有这些,重要的是要记住的是,更大的应用程序通常有独特的挑战。您应该评估存在的每一个流行的第三方解决方案,并且您可能会从一些晦涩难懂的解决方案中获益很多。当我第一次评估休会的时候,它还远远没有准备好生产,但是它的方法基本上使它进入了项目。
在典型的网站上,您可能不需要使用简单输出缓存和操作码缓存,但是在大型应用程序中,您应该真正考虑内存缓存,最常见的是围绕梅卡奇构建的缓存。
X侦错通常被称为调试器,但也可以充当轮廓仪。我最近开始使用Zend服务器,我非常喜欢它的代码跟踪特性。不幸的是,这些在社区版中是不可用的,但是xdebug是一个相当不错的替代方案。
如果您正在使用Apache,请确保使用把它优化掉。nginx和莱特普在性能上都是显然更好的选择,但是我并没有经常使用它们,而且我也说不出来。
至于数据库,Doctrine的查询和结果缓存非常有用,特别是与梅卡奇相结合。当然,我们不能忘记前端。雅虎的超常性能团队已经收集了一份广泛的最佳做法列表。我并不是一个真正的前端开发者,但我已经看到了令人惊讶的结果的独奏项目。
最后,PHP有一个全新的垃圾收集机制,值得一看。
至少可以说,PHP安全的世界是混乱的。我不是专家,所以把以下几点当作一般性的提示:
在IT安全栈交换的人群可以帮助你得到更有教养的答案。
发布于 2012-01-28 18:11:40
IBM的developerworks网站有一个大量文章,其中很多都很好。他们有一个比较框架的系列文章,还有一个关于使用CakePHP框架的网站的系列。
O‘’Reilly的旧"Onlamp“网站有一个关于中的MVC的文章。这篇文章的作者接着谈到了详细解释MVC。
奥莱利的文章有点旧,但它们会让你走的。的内容非常好,涵盖了很多您想要的内容。
https://softwareengineering.stackexchange.com/questions/132275
复制相似问题