PHP Composer项目标准目录布局
Composer项目是否有任何标准的项目结构,如PHP中的Maven项目?典型的布局如下:PHP Composer项目标准目录布局,php,composer-php,Php,Composer Php,Composer项目是否有任何标准的项目结构,如PHP中的Maven项目?典型的布局如下: src/ vendor/ .git composer.json composer.lock 出于兼容性目的,Git和Composer文件应该位于项目的根目录中 源目录应该是源文件的根目录,从类的顶级名称空间开始 供应商目录应包含通过composer导入的所有第三方库 这是最低预期标准,特别是对于实时项目环境。如果项目是一个库,那么可以省略源目录 最好的例子是Symfony2标准版: 在此之后,前端
src/
vendor/
.git
composer.json
composer.lock
- 出于兼容性目的,Git和Composer文件应该位于项目的根目录中
- 源目录应该是源文件的根目录,从类的顶级名称空间开始
- 供应商目录应包含通过composer导入的所有第三方库
在此之后,前端资产和控制器的约定通常为:
web/
js/
css/
images/
index.php
本例中的索引文件是前端控制器。
这应该在另一个目录中包含引导程序,或者使用该目录中的配置初始化环境
对于Symfony2,这是app
目录:希望这有帮助,请记住这完全是基于我的经验和观察。典型的布局如下:
src/
vendor/
.git
composer.json
composer.lock
- 出于兼容性目的,Git和Composer文件应该位于项目的根目录中
- 源目录应该是源文件的根目录,从类的顶级名称空间开始
- 供应商目录应包含通过composer导入的所有第三方库
在此之后,前端资产和控制器的约定通常为:
web/
js/
css/
images/
index.php
本例中的索引文件是前端控制器。
这应该在另一个目录中包含引导程序,或者使用该目录中的配置初始化环境
对于Symfony2,这是app
目录:希望这能有所帮助,请记住这完全是基于我的经验和观察。最新的答案是“是”,这是基于扫描上列出的每个包,并统计绝大多数包正在使用的目录,即大多数人在没有协调的情况下无意识地同意的内容: 目录的简短摘要:
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/
使用此布局可以将您的项目与您可能用作依赖项的其他每个项目对齐。请注意,您不必拥有每一个目录,只需要那些实际承载文件的目录。最新的答案是“是”,这是基于扫描上列出的每个包,并计算出绝大多数包正在使用哪些目录,即大多数人在没有协调的情况下无意识地同意的:
目录的简短摘要:
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/
使用此布局可以将您的项目与您可能用作依赖项的其他每个项目对齐。请注意,您不必拥有每个目录,只需拥有实际承载文件的目录。简单回答“否”,尽管在
/src
及以下目录中有代码、在/vendor
中有其他第三方库、在/test
中有测试等情况很常见,简单回答“否”虽然在/src
及以下版本中有代码、在/vendor
中有其他第三方库、在/test
中有测试等都很常见,但这是一个很好的举措。但是,Symfony结构不符合此标准。完整的软件包“Symfony/Symfony”符合此标准,但是由于他们维护其子组件的方式,因此不允许他们在主存储库中引入额外的src
目录。我可以接受。谢谢你的更新,这是一个很好的计划。但是,Symfony结构不符合此标准。完整的软件包“Symfony/Symfony”符合此标准,但是由于他们维护其子组件的方式,因此不允许他们在主存储库中引入额外的src
目录。我可以接受。