1.psr0 这是个啥东西呢,这是一个标准。
一个实现自动加载类的标准。
在这之前你需要先了解__autoload 和spl_autoload_register这两个方法。
为什么要实现这个标准呢?
如果整个项目是自己写的不需要任何其他人的代码,那好。你想怎么定义这个标准就怎么定义。可是当你需要调用第三方的类库的时候。
就会出现问题,因为可能你们两个自动加载类的标准不同所以,自动加载类是需要一个标准的。
介绍一下这个标准:
规范:
完全限定的命名空间和类必须具有以下结构\\(\)*
每个命名空间必须具有顶级命名空间(“供应商名称”)。
每个命名空间可以拥有尽可能多的子命名空间。
DIRECTORY_SEPARATOR从文件系统加载时,每个命名空间分隔符都将转换为一个。
_CLASS NAME中的每个字符都转换为aDIRECTORY_SEPARATOR。该_字符在该命名空间没有任何特殊含义。
.php当从文件系统加载时,完全限定名称空间和类后缀。
供应商名称,命名空间和类名称中的字母字符可以是小写和大写的任何组合。
具体实现:
这就是实现这个标准的代码。
当你要实例化一个类的时候会相应的加载这个类:
autoload("/dir1/dir2/class1");
autoload("/dir1/dir2/class1_class2");
加载的类为(也就是实际的物理路径):
/dir1/dir2/class1.php
/dir1/dir2/class1/class2.php
总结&#