本文是对http://www.php-fig.org/psr/psr-4/ 文字的简单介绍
PSR4描述了从文件路径加载类的规范。此规范完全互操作,即 可以跟其他自动加载的规范协作,包括PSR-0. 读者可以根据规范的描述,知道要满足自动加载的时候,应该把响应的文件放到具体的哪个目录。
一个完整的类名字的定义:
\<NamespaceName>(\<SubNamespaceNames>)*\<ClassName>
从类的名字,找到文件的名字,最主要的思想是:
- 命名前缀 对应着基本路径
- 命名前缀之后的子命名空间对应着基本路径的子目录,分割符跟目录的分隔符也是一一对应的
- 最后的基类名字加后缀名.php 就是要找的文件名。
例子:
一个类名字 \Symfony\Core\Request, 首先知道命名前缀是\Symfony\Core, 进而查出基本路径是 ./vendor/Symfony/Core, 那么,这个类所在的php文件就是 ./vendor/Symfony/Core/Request.php
同样,类\Zend\Acl,其命名前缀是Zend,基本路径是/usr/includes/Zend/, 那么最终路径就是/usr/includes/Zend/Acl.php
实现代码:
链接在此:
https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-4-autoloader-examples.md