pds/skeleton PHP 扩展架构规范(扩展开发必读)
pds/skeleton
本文描述了所有适用于 PHP 包的标准文件系统框架。
请查阅 https://github.com/php-pds/skeleton_resear... 获取背景资料。
用于 验证
或 生成
符合 PDS 标准包的命令行工具说明 在此。
关键词 "必须","一定不可","需要","将要", "将不","应该",
"不该","推荐","可以",和 "可选" 在本文中描述语义遵循 RFC 2119 标准。
概览
一个包在根级别下的目录必须使用如下名称:
如果一个包中含有根级别的目录 ... | ... 那么它们必须命名如此: |
---|---|
命令行可执行文件 | bin/ |
配置文件 | config/ |
文档 | docs/ |
web服务器文件 | public/ |
其他资源文件 | resources/ |
PHP 源码 | src/ |
测试代码 | tests/ |
一个包在根级别下的文件必须使用如下名称:
如果一个包中含有根级别的文件... | ... 那么它们必须命名如此: |
---|---|
发布版本间的更新日志 | CHANGELOG(.*) |
参与者指南 | CONTRIBUTING(.*) |
证书许可 | LICENSE(.*) |
包简介 | README(.*) |
一个包应该包含一个根级文件,表明许可和
包内容的版权条款。
根级目录
bin/
如果一个包提供一个根级目录用来存放命令行可执行文件,则它必须被命名为 bin/
。
本文将不再另外定义该结构和内容目录。
config/
如果一个包提供一个根级目录用来存放配置文件,则它必须被命名为 config/
。
本文将不再另外定义该结构和内容目录。
docs/
如果一个包提供一个根级目录用来存放文档,则它必须被命名为 docs/
。
本文将不再另外定义该结构和内容目录。
public/
如果一个包提供一个根级目录用来存放 web 服务器文件,则它必须被命名为 public/
。
本文将不再另外定义该结构和内容目录。
注: 这个目录可以作为 web 服务器文档的根目录。
另一种方式,这些文件可以被其他代码动态提供,
复制或者创建符号链接到「真正」的文档根目录,
或以其他方式管理,以便它们在网上流通。
resources/
如果一个包提供一个根级目录用来存放其他资源文件文件,则它必须被命名为 resources/
。
本文将不再另外定义该结构和内容目录。
src/
如果包为 PHP 源代码提供了一个根目录, 则必须被命名为 src/
.
此发布版本不额外定义结构和目录内容。
tests/
如果包为测试文件提供了一个跟目录,则必须被命名为 tests/
.
此发布版本不额外定义结构和目录内容。
Other Directories
The package MAY contain other root-level directories for purposes not described
by this publication.
This publication does not define the structure and contents of the other
root-level directories.
Root-Level Files
CHANGELOG
If the package provides a root-level file with a list of changes since the last
release or version, it MUST be named CHANGELOG
.
It MAY have a lowercase filename extension indicating the file format.
This publication does not otherwise define the structure and contents of the
file.
参与贡献
如果一个包提供一个根级文件用来描述如何向它贡献代码,则该文件必须被命名为 CONTRIBUTING
。
它可以有一个小写的文件扩展名。
本文将不再另外定义该结构和内容目录。
证书
在拷贝当前包代码时,使用者可能会违反版权法中未经许可的知识产权条款, 当前包应该包含一个根级文件用以表明包裹内容的许可和版权条款。
如果一个包提供一个根级文件用以表示许可和版权条款,则该文件必须被命名为LICENSE
。
它可以有一个小写的文件扩展名。
本文将不再另外定义该结构和内容目录。
README 文件
如果包提供一个关于他自身信息的根级文件,则必须被命名为 README
。
他可能有一个小写的文件扩展名代表文件格式。
此发行版不额外定义结构和目录内容。
其他文件
包中可能包含其他根级文件来说明未在发行版中描述的目的。
此发行版不去定义结构和其他根级文件的内容。
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。