聪明的PHP应用程序组织结构?


10

有成百上千的文件系统结构可用于众多可用的开源项目中。诸如模块,语言文件,域,第三方库,迁移,国际化,备份以及到系统其他部分的系统链接之类的东西已经产生了许多组织项目文件系统的方法。

作为一个PHP开发人员,我想知道项目之间是否开始出现任何类型的标准化。使用PSR-0,我们终于有了命名和加载文件的标准-但据我所知,关于组成系统的其余组件或如何以理智的方式处理它们,这毫无意义。

我们所处理的不只是MVC,还有很多大型项目可以正确地处理所有这些事情?


3
作为一名PHP开发人员,我不会期望PHP组件保持理智
CamelBlues 2011年

2
@CamelBlues基于纯粹的偶然性,一些PHP开发人员最终不得不搞砸了并且做对了。
Xeoncross

我还没有看到标准化方面的内容。在最近几年之前,您将拥有用于存放前端内容(js,css)的文件夹,然后您将具有include或libs,然后是模板或主题,仅此而已。最近随着MVC框架的流行,目前还不清楚。我想说不用担心现在使用标准,只需保持清楚特定应用程序中的位置即可。
杰森

Answers:


3

真正不可能标准化项目的布局方式,因为“取决于情况”。

如果引入标准结构,但其中一些与正在开发的需求无关,则最终可能会产生不必要的额外噪声。同样,如果标准需要适用于广泛的项目,则它们将需要包含太多不同的方案。

作为开发人员,我们的工作是寻找模式和最佳实践,并将其应用于手头的任务。我们将利用我们的经验和专业知识为我们正在从事的项目选择正确的文件系统结构。


+1总的来说,我同意你的观点,这当然是正确的。但是,如果您删除语言之外的内容(备份文件夹,cron / build脚本,静态资产等),而只专注于语言本身-我不相信可以提出相同的论点。语言已经受到限制。弄清楚如何安排所有类和代码块,使它们对每个项目都有意义,这是一个现实且可实现的目标。
Xeoncross 2012年

0

似乎并没有进行太多的标准化工作,老实说,我看不出有什么好处。您应该遵循一个规则,那就是您永远都不要在文档根目录下拥有不属于该目录的东西(基本的安全预防措施)。

除此之外,我只考虑对项目有意义的内容。

如果您正在使用MVC(通过框架或临时方式),则具有/ models,/ views和/ controllers的基本结构是有意义的。但是,即使您不是这样,您通常也拥有某种数据访问层,其类映射到您的数据实体。为这些目录创建目录是有意义的;您通常还会有一堆业务逻辑类和实用程序函数,因此还有另一个目录;如果使用模板系统,则模板会进入另一个目录;然后可能需要一个“库”目录,在其中放置所有第三方库。(一旦达到这一点,无论如何,您几乎都会在做MVC)。

如果项目真的很大,它可能可以划分为功能子模块。如果子模块相当独立,则可以将其用作顶层,并为公共代码提供一个附加目录。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.