# PSR-4 自动加载规范

一个完整的类名需具有以下结构：

```
\<命名空间>(\<子命名空间>)*\<类名>
```

> 完整的类名 **必须** 要有一个顶级命名空间。
>
> 完整的类名 **可以** 有一个或多个子命名空间。
>
> 完整的类名 **必须** 有一个最终的类名。
>
> 完整的类名中任意一部分中的下划线都是没有特殊含义的。
>
> 完整的类名 **可以** 由任意大小写字母组成。
>
> 所有类名都 **必须** 是大小写敏感的。

当根据完整的类名载入相应的文件：

> 完整的类名中，去掉最前面的命名空间分隔符，前面连续的一个或多个命名空间和子命名空间，作为命名空间前缀，其必须与至少一个文件主目录相对应。
>
> 紧接命名空间前缀后的子命名空间 **必须** 与相应的文件主目录相匹配，其中的命名空间分隔符将作为目录分隔符。
>
> 末尾的类名 **必须** 与对应的以 `.php` 为后缀的文件同名。
>
> 自动加载器的实现 **一定不可** 抛出异常、 **一定不可** 触发任一级别的错误信息以及 **不应该** 有返回值。

