文件夹/文件结构约定?

时间:2010-11-13 13:16:47

标签: php

我正在尝试查找有关PHP文件/文件夹结构约定的指南。

我正在使用GitHub,并希望确保我遵循标准惯例,以免混淆用户。

任何帮助都将不胜感激。

5 个答案:

答案 0 :(得分:6)

正如speshak所说,PHP没有标准也没有约定(包括自己的标准库)。

然而:

  1. 在公共目录(通常为public_html)中,仅存储静态资源(images / JS / CSS)和一个PHP文件index.php,仅限于此类:

    <?php
    
    
    require '/path/to/app/outside/public/html/start.php';
    $app = new App();
    $app->run();
    
  2. 应用程序本身应存储在公共目录之外。

  3. 文件结构可能反映了类名称,因此:Project\Util\XML\Parser将存储在/path/to/the/project/Project/Util/XML/Parser.php文件中。
  4. 当然第三方代码可能存储在单独的文件夹中,比方说vendor - 这是非常常见的惯例。

答案 1 :(得分:4)

您可以自由选择任何目录结构。但是,如果您想了解最佳实践,请查看它是如何在框架中完成的,例如,symphony。

看看:http://www.flickr.com/photos/deia/402335716/

以下是其中一些:

  • 所有包含的代码都应放在文档根目录之外。

  • HTML模板应位于单独的目录中。

  • 库和类应位于“lib”目录中。

大多数情况下,这只是一个合理的解决方案,而不是严格的约定。

答案 2 :(得分:4)

我认为最明显的是你的图书馆。如果要兼容,则应将类命名为YourCompany_Module_Class。使用此标准,您的库可以与任何其他类似命名的库一起使用,而不会出现冲突和问题。 PHP 5.3+中的新命名空间有助于实现这一目标。您可以在Zend Coding Standards - File NamingPSR-0 Standard Proposal处获得一些相关指南。

除此之外,您最好不断考虑未来并相应地规划文件夹结构。例如,假设您要将图片上传到user_images。好。但是当项目捕获或变大时会发生什么,现在你在一个文件夹中有数万个文件。您必须构建一些方案,使您能够在每个目录中最多存储~1k图像,如12/56/154.jpg

随着时间的推移,你会看到很多这样的问题和机会。但是你可以看看当前的项目并免费学习它们:)

答案 3 :(得分:4)

有这个:

https://github.com/php-pds/skeleton

基于data collected from various open-source projects,本文档提出了为各种常见目的指定的多个根级目录的命名约定,以及根级文档文件的命名约定。

我没有发现这涵盖了所有可以想象的场景,但能够指出这一点并指出你正努力在各个项目之间实现某种一致性是很好的: - )

答案 4 :(得分:3)

PHP真的没有标准。如果您正在使用某些框架(例如CakePHP,Zend Framework等),它可能会对您施加一些标准。

如果您没有使用强制结构的第三方库,请使用常识。 (将图像放在图像目录中,包含目录中包含的文件等)下载和安装PHP应用程序的人员已经习惯于以不同的方式处理每个应用程序。你给它一些想法的事实让你成为很多竞争对手的主管:)