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

file

pds/skeleton

项目地址:https://github.com/php-pds/skeleton

本文描述了所有适用于 PHP 包的标准文件系统框架。

请查阅 https://github.com/php-pds/skeleton_research 获取背景资料。

用于 验证生成 符合 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

他可能有一个小写的文件扩展名代表文件格式。

此发行版不额外定义结构和目录内容。

其他文件

包中可能包含其他根级文件来说明未在发行版中描述的目的。

此发行版不去定义结构和其他根级文件的内容。


Practice makes perfect.

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

译文地址:https://laravel-china.org/topics/9875/pd...

本帖已被设为精华帖!
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!