我想知道开发人员在复杂的php应用程序中使用的php架构策略。到目前为止,我知道mvc结构,它由模型、视图和控制器(以及处理用户访问控制器等常见任务的控制器插件)组成。我知道一些很好的php框架可以让一些常见的东西变得更容易,但是当我想到庞大复杂的php应用程序时,问题就开始了。因为在这些应用程序中,有很多事情要做,也有很多想法要检查,所以我不能决定哪一个代码应该放在哪里。
想想Magento的应用程序,这是一个非常巨大的应用程序。当我回顾应用程序的源代码时,我无法理解设计策略。我知道有一些完美的设计策略可以轻松地处理非常大的php应用程序,因为它们不能用非常弱的设计策略来构建这么大的应用程序。设计策略应该支持比您想要的更多的内容,这样您就可以轻松地改进您的代码和应用程序
总而言之,我想知道如何创建更大的应用程序。现在我在应用程序中使用的设计策略限制了我,所以我无法创建更复杂的应用程序。我想知道哪个设计策略可以处理复杂的应用程序。
我知道这是一个非常抽象的问题,但这是因为现在我的php背景来自业余爱好,而不是学术。我想做的更多,但我在某个地方,我不能再多走一步,因为我找不到更复杂的信息编码。总之,我想了解复杂php应用程序(如magento)的设计策略。
也许我知道的设计策略(mvc,frameworks ci cake…)可以处理比我想象的更复杂的应用程序。
如果我的问题有错误,请随时改正,对不起,我的英语不好。
最佳答案
我认为,您的问题可能部分在于,创建企业应用程序在任何语言中都是一个问题,而可以实现的设计模式实际上是语言不可知的。
我强烈建议您熟悉martin fowler的企业应用程序架构模式。这是任何其他书籍的开创性工作,你可能会在以后拿起涵盖相同的概念,在语言特定的格式,如果你想真正了解什么是必要的,以创建强大的,可扩展的应用程序,那么你需要熟悉这本书。
目前web应用程序中一个非常常见和流行的设计策略是模型-视图-控制器范例。这必须完全与应用程序中的关注点分离有关,这样就不会将数据库访问代码与html输出混合在一起。
为了很好地处理这个主题,我建议您查看here(zend framework specific,但它很好地涵盖了一般主题)和here来讨论具体的模型。或者如果你想看一个更通用的PHPMVC教程,RasmusLerdorf已经one。
除此之外(您还可以从martin fowler的pofeaa中学到这一点),您还需要学习对象关系映射,了解各种设计模式的优缺点。
不幸的是,根据你的需要有很多好的方法来做事情,但是每一个好的方法都有无数可怕的错误的方法。