PHP的 PSR4 类的自动加载介绍

本文是对http://www.php-fig.org/psr/psr-4/ 文字的简单介绍

PSR4描述了从文件路径加载类的规范。此规范完全互操作,即 可以跟其他自动加载的规范协作,包括PSR-0. 读者可以根据规范的描述,知道要满足自动加载的时候,应该把响应的文件放到具体的哪个目录。

一个完整的类名字的定义:

\<NamespaceName>(\<SubNamespaceNames>)*\<ClassName>

从类的名字,找到文件的名字,最主要的思想是:

  1. 命名前缀 对应着基本路径
  2. 命名前缀之后的子命名空间对应着基本路径的子目录,分割符跟目录的分隔符也是一一对应的
  3. 最后的基类名字加后缀名.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

原文地址:https://www.cnblogs.com/restart/p/4428091.html