[TOC=2]
## 1. 概述
* 此 PSR 描述了从文件 路径自动加载类的规范。它完全可互操作,除了包括 PSR-0 在内的任何其他自动加载规范外,还可以使用它。此 PSR 还描述了根据规范放置将自动加载的文件的位置。
## 2. 规格
* 术语“class”指的是类,接口,特征和其他类似结构。
* 完全限定的类名具有以下形式:
~~~php
\<NamespaceName>(\<SubNamespaceNames>)*\<ClassName>
~~~
* 完全限定的类名必须具有顶级命名空间名称,也称为“供应商命名空间”。
* 完全限定的类名可以具有一个或多个子命名空间名称。
* 完全限定的类名必须具有终止类名。
* 下划线在完全限定类名的任何部分都没有特殊含义。
* 完全限定类名中的字母字符可以是小写和大写的任意组合。
* 必须以区分大小写的方式引用所有类名。
* 加载对应于完全限定类名的文件时...
* 完全限定类名(“名称空间前缀”)中的一个或多个前导命名空间和子命名空间名称的连续系列(不包括前导命名空间分符)对应于至少一个“基本目录”。“名称空间前缀”之后的连续子命名空间名称对应于“基本目录”中的子目录,其中名称空间分隔符表示目录分隔符。子目录名称必须与子命名空间名称的大小写匹配。
* 终止类名对应于以 .php 。结尾的文件名。文件名必须与终止类名称的大小写相匹配。
* Autoloader 实现绝不能抛出异常,不得引发任何级别的错误,并且不应返回值。
## 3. 例子
* 下表显示了给定完全限定的相应文件路径类名,名称空间前缀和基目录。
| FULLY QUALIFIED CLASS NAME | NAMESPACE PREFIX | BASE DIRECTORY | RESULTING FILE PATH |
| --- | --- | --- | --- |
| \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 |
例如符合规范的自动加载器的实现,请参阅示例文件。 绝不能考虑示例实现作为规范的一部分,可以随时更改。
- 文档说明
- Java 相关
- 环境配置
- PHP 相关
- 开发规范
- PSR-1: 基本编码标准
- PSR-2: 编码风格指南
- PSR-3: 记录器接口
- PSR-4: 自动加载器
- 部分注解
- 命名空间
- 自动加载
- 环境搭建
- phpstudy
- sublime text3
- Centos6.*
- Centos7.*
- redis 安装
- 在Linux上安装NodeJS
- 安装Crontab UI
- tomcat
- Composer
- 开发优化
- 扩展使用
- Yaconf
- 开发安全
- 经典案例
- 站内信设计
- 微擎相关
- Linux 相关
- 基本常用
- wget
- crontab
- Systemd
- yum
- cat && tac
- kill
- tail
- cat
- vim
- nginx
- 前端相关
- Grid 布局
- Flex 布局
- 杂项
- JS 位运算
- JS 基础
- Vue
- Axios
- 常用正则
- 命名参考
- sass
- 简单技巧
- Web Worker
- HTTP
- Content-Type
- 状态码
- MySql 相关
- 连接操作
- 用户相关
- 数据库表
- 字段操作
- 时间函数
- 文档解读
- 命令
- 优化
- 数据库优化
- 电脑使用
- 系统优化
- 软件卸载
- 并发优化