有成百上千的文件系统结构可用于众多可用的开源项目中。诸如模块,语言文件,域,第三方库,迁移,国际化,备份以及到系统其他部分的系统链接之类的东西已经产生了许多组织项目文件系统的方法。
作为一个PHP开发人员,我想知道项目之间是否开始出现任何类型的标准化。使用PSR-0,我们终于有了命名和加载文件的标准-但据我所知,关于组成系统的其余组件或如何以理智的方式处理它们,这毫无意义。
我们所处理的不只是MVC,还有很多大型项目可以正确地处理所有这些事情?
有成百上千的文件系统结构可用于众多可用的开源项目中。诸如模块,语言文件,域,第三方库,迁移,国际化,备份以及到系统其他部分的系统链接之类的东西已经产生了许多组织项目文件系统的方法。
作为一个PHP开发人员,我想知道项目之间是否开始出现任何类型的标准化。使用PSR-0,我们终于有了命名和加载文件的标准-但据我所知,关于组成系统的其余组件或如何以理智的方式处理它们,这毫无意义。
我们所处理的不只是MVC,还有很多大型项目可以正确地处理所有这些事情?
Answers:
真正不可能标准化项目的布局方式,因为“取决于情况”。
如果引入标准结构,但其中一些与正在开发的需求无关,则最终可能会产生不必要的额外噪声。同样,如果标准需要适用于广泛的项目,则它们将需要包含太多不同的方案。
作为开发人员,我们的工作是寻找模式和最佳实践,并将其应用于手头的任务。我们将利用我们的经验和专业知识为我们正在从事的项目选择正确的文件系统结构。
似乎并没有进行太多的标准化工作,老实说,我看不出有什么好处。您应该遵循一个规则,那就是您永远都不要在文档根目录下拥有不属于该目录的东西(基本的安全预防措施)。
除此之外,我只考虑对项目有意义的内容。
如果您正在使用MVC(通过框架或临时方式),则具有/ models,/ views和/ controllers的基本结构是有意义的。但是,即使您不是这样,您通常也拥有某种数据访问层,其类映射到您的数据实体。为这些目录创建目录是有意义的;您通常还会有一堆业务逻辑类和实用程序函数,因此还有另一个目录;如果使用模板系统,则模板会进入另一个目录;然后可能需要一个“库”目录,在其中放置所有第三方库。(一旦达到这一点,无论如何,您几乎都会在做MVC)。
如果项目真的很大,它可能可以划分为功能子模块。如果子模块相当独立,则可以将其用作顶层,并为公共代码提供一个附加目录。
您可以按照两种最流行的应用程序框架的项目布局进行操作:
这些将基于用户的最佳实践和经验提供可扩展的结构