PSR-4翻译,PHP Autoloader 规范
2015-02-28 13:56
579 查看
Autoloader
关键词 "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC2119.
1. 概览
PSR-4约定了 PHP autoloading(自动加载机制)如何找到文件所在路径。这个规范是开放的,并且可以融入其他的autoloading的规范,包括PSR-0. 本文档也描述了如何根据规范来存放需要自动加载的文件。2. 规范
下文提到的"class" 涵盖 classes, interfaces, traits, 和其他类似的结构体.
一个合法的完整类名如下:
\<NamespaceName>(\<SubNamespaceNames>)*\<ClassName>
一个完整合法类名,必须包含一个顶级命名空间名,我们也称之为vendor namespace. 通常一个软件包会有一个独立的顶级命名空间。
完整的合法类名可以有一级或多级子命名空间。
完整的合法类名必须有最终类名。
下划线在完整的合法类名中任何位置出现都没有特殊含义。
完整的合法类名中,字幕可以有任意的大小写组合。
所有类名必须区分大小写。
当加载一个符合合法类名对应的文件时...
完整合法类名中,由一段或多段命名空间名组成,不包括命名空间前导分隔符的连续序列(命名空间前缀),须要符合至少一个基础目录(Base Directory)。
命名空间前缀之后的连续子命名空间 和 基础目录下的路径保持一致,命名空间分隔符替换为目录分隔符,子目录名大小写必须喝命名空间名保持一致。
最终类名加上
.php后缀几位文件名。
文件名的大小写必须喝最终类名一致。
Autoloader 的实现不能抛出异常, 不能触发任何报错, 也不应该return value.
3. 例子
完整类名 | 命名空间前缀 | 基础目录 | 最终文件名 |
---|---|---|---|
\Acme\Log\Writer\File_Writer | Acme\Log\Writer | ./acme-log-writer/lib/ | ./acme-log-writer/lib/File_Writer.php |
\Aura\Web\Response\Status | Aura\Web | /path/to/aura-web/src/ | /path/to/aura-web/src/Response/Status.php |
\Symfony\Core\Request | Symfony\Core | ./vendor/Symfony/Core/ | ./vendor/Symfony/Core/Request.php |
\Zend\Acl | Zend | /usr/includes/Zend/ | /usr/includes/Zend/Acl.php |
file. Example implementations MUST NOT be regarded as part of the specification and MAY change at any time.
Additional Info:
PSR-4 — Autoloader
PSR-4
Meta Document
Example
Implementations of PSR-4
相关文章推荐
- PSR-4翻译,PHP Autoloader 规范
- PHP PSR-0 语言规范翻译
- PHP编码规范(PSR-4)-Autoloader 自动加载
- 我也学php:编码规范/翻译自PSR
- PHP编码规范之PSR-4
- PHP PSR-4 Autoloader 自动加载(中文版)
- PHP的PSR系列规范都有啥内容
- 2015.2.6 关于php的PSR-0和PSR-5规范
- PHP PSR-4与PSR-0规范
- PHP PSR-1 基本代码规范(中文版)
- PHP编码规范之PSR-2
- PHP的PSR规范中文版
- PHP PSR-3 日志接口规范 (中文版)
- PHP PSR-1 基本代码规范(中文版)
- 关于php规范psr-4
- PHP PSR-3 日志接口规范 (中文版)
- PHP PSR 规范
- PSR-4——新鲜出炉的PHP规范
- PHP PSR-2 代码风格规范 (中文版)
- PHP PSR-2 代码风格规范 (中文版)