PSR-0与PSR-4区别

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

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

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

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异常

相关文章
相关标签/搜索