pds/skeleton PHP 扩展架构规范(扩展开发必读)

file

pds/skeleton

项目地址:https://github.com/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 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://github.com/php-pds/skeleton/tree...

译文地址:https://learnku.com/laravel/t/9875/pdssk...

本帖已被设为精华帖!
本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!