2014-09-25 97 views

回答

1

,典型的结构是这样的:

src/ 
vendor/ 
.git 
composer.json 
composer.lock 
  • 出于兼容性的目的,Git和作曲家文件应该位于项目的根。
  • 源目录应该是以类的顶级命名空间开头的源文件的根目录。
  • 供应商目录应包含通过作曲者导入的所有第三方库。

这是最低预期标准,特别是对于现场项目环境。如果项目是一个库,那么可以忽略源目录。

这方面最好的例子是Symfony2的标准版:
https://github.com/symfony/symfony-standard

本公约的前端资产和控制器之后通常是:

web/ 
    js/ 
    css/ 
    images/ 
    index.php 

在这种情况下,索引文件是你的前控制器。 这应该在另一个目录中包含引导程序,或使用该目录中的配置来初始化环境。

对于Symfony2的,这是app目录:
https://github.com/symfony/symfony-standard/tree/master/app

希望这有助于记住裸,这是完全基于我的经验和观察。

1

最新的答案是“是”,基于扫描的https://packagist.org和计数列出的每个包正在使用的绝大多数的包,即大多数人不自觉地在没有协调商定目录:

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

用于目录的简短摘要:

If a package has a root-level directory for ...  
          ... then it MUST be named: 
command-line executables bin/ 
configuration files   config/ 
documentation files   docs/ 
web server files   public/ 
other resource files  resources/ 
PHP source code    src/ 
test code     tests/ 

,使用此布局几乎对齐项目与你可能会因为依赖使用所有其他项目。请注意,您不必拥有每个目录,只有那些实际托管文件的目录。

+0

感谢您的更新,一个好主意。但是,Symfony结构不符合此标准。 – Arthur 2017-02-03 18:34:52

+0

完整的软件包“symfony/symfony”的确如此,但是由于他们维护他们的子组件,他们不可能在主存储库中引入额外的'src'目录。我可以忍受这一点。 – Sven 2017-02-03 20:28:53