php规范PSR-4
1. 概况这个 PSR 描述的是通过文件路径自动载入类的指南;它作为对 PSR-0 的补充;根据这个 指导如何规范存放文件来自动载入;
2. 说明(Specification)
[*] 术语「类」是一个泛称;它包含类,接口,traits 以及其他类似的结构;
[*] 完全限定类名应该类似如下范例:
()*
[*] 完全限定类名必须有一个顶级命名空间(Vendor Name);
[*] 完全限定类名可以有多个子命名空间;
[*] 完全限定类名应该有一个终止类名;
[*] 下划线在完全限定类名中是没有特殊含义的;
[*] 字母在完全限定类名中可以是任何大小写的组合;
[*] 所有类名必须以大小写敏感的方式引用;
[*] 当从完全限定类名载入文件时:
[*] 在完全限定类名中,连续的一个或几个子命名空间构成的命名空间前缀(不包括顶级命名空间的分隔符),至少对应着至少一个基础目录。
[*] 在「命名空间前缀」后的连续子命名空间名称对应一个「基础目录」下的子目录,其中的命名 空间分隔符表示目录分隔符。子目录名称必须和子命名空间名大小写匹配;
[*] 终止类名对应一个以 .php 结尾的文件。文件名必须和终止类名大小写匹配;
[*] 自动载入器的实现不可抛出任何异常,不可引发任何等级的错误;也不应返回值;
3. 范例
如下表格展示的是与完全限定类名、命名空间前缀和基础目录相对应的文件路径:
完全限定类名命名空间前缀基础目录实际的文件路径\Acme\Log\Writer\File_WriterAcme\Log\Writer./acme-log-writer/lib/./acme-log-writer/lib/File_Writer.php\Aura\Web\Response\StatusAura\Web/path/to/aura-web/src//path/to/aura-web/src/Response/Status.php\Symfony\Core\RequestSymfony\Core./vendor/Symfony/Core/./vendor/Symfony/Core/Request.php\Zend\AclZend/usr/includes/Zend//usr/includes/Zend/Acl.php 例子中的自动载入器非常适应这个指南,请参照 示例文件。由于可能随时变更,实例不能作为指南的一部分。
原文链接:https://github.com/hfcorriez/fig-standards/blob/zh_CN/%E6%8E%A5%E5%8F%97/PSR-4-autoloader.md
PHP规范PSR-1(基本代码规范)
PHP规范PSR-2(代码风格指南)
php规范PSR-3(日志接口)
php规范PSR-4
页:
[1]