3

一直对psr0和4了解不是很透彻,虽然官方已经废弃了psr0,但是发现composer还是对psr0向下兼容,所以也花时间从composer的加载代码中了解了一下他们的区别,具体如下:

1.在composer中定义的NS,psr4必须以\结尾否则会抛出异常,psr0则不要求

2.psr0里面最后一个\之后的类名中,如果有下划线,则会转换成路径分隔符,如Name_Space_Test会转换成Name\Space\Test.php。在psr4中下划线不存在实际意义

3.psr0有更深的目录结构,比如定义了NS为 Foo\Bar=>vendor\foo\bar\src,
use Foo\Bar\Tool\Request调用NS。
如果以psr0方式加载,实际的目录为vendor\foo\bar\src\Foo\Bar\Tool\Request.php
如果以psr4方式加载,实际目录为vendor\foo\bar\src\Tool\Request.php


老表
2.1k 声望103 粉丝

引用和评论

0 条评论