PSR-0与PSR-4区别

编排狂
• 阅读 15472

一直对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

点赞
收藏
评论区
推荐文章
美凌格栋栋酱 美凌格栋栋酱
6个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Easter79 Easter79
3年前
tp5 composer 导入qrcode
tp5composer导入qrcode使用composer导入第三方模块是很爽的,久而不用又感觉找不到节奏,记录一下。基础环境:php5.3.2以上,composer,tp5composer安装:直接下载exe文件https://getcomposer.org/ComposerSetup.exe(https:
浩浩 浩浩
4年前
【Flutter实战】Dart线程模型及异常捕获
2.6Flutter异常捕获在介绍Flutter异常捕获之前必须先了解一下Dart单线程模型,只有了解了Dart的代码执行流程,我们才能知道该在什么地方去捕获异常。2.6.1Dart单线程模型在Java和ObjectiveC(以下简称“OC”)中,如果程序发生异常且没有被捕获,那么程序将会终止,但是这在Dart或JavaScript中则不会!
Wesley13 Wesley13
3年前
PSR 类自动加载规范的翻译与看法
先列举一些资源:PSR0官网原文(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.phpfig.org%2Fpsr%2Fpsr0%2F)PSR的Github源(https://www.oschina.net/action/GoToLink?urlh
Stella981 Stella981
3年前
Python Challenge Level 18
初学Python,挑战一下流行的PythonChallenge,很不幸,卡在了18关~~被字符字节码之间的转换搞得焦头烂额,不过终于搞定了还是很happy的~~~主要的问题就是16进制形式的字符如何转成字节码(注意:不是encoding)如:\'89','50','4e','47','0d','0a','1a','0a','00
Wesley13 Wesley13
3年前
Java深究之Vector、ArrayList、LinkedList的区别
       在java开发中除了上文经常用的对字符串的操作外,还有使用居多的当属集合了。在基础的java学习时,相信很多同学都学习了List、Set、Map这些,他们之间的区别和基本的使用方法也是很了解了,本文是详细的去分析List中Vector、ArrayList、LinkedList之间的区别和底层实现原理以及使用场景首先说下这三者的区别:
Stella981 Stella981
3年前
Linux安装Composer
Composer是php的一个包管理器,使用Composer能极大的提高我们的代码效率。当我们需要使用优雅的laraverl框架时我们一定不能绕过Composer当然Composer不是只为laravel服务的,他是为整个php服务的。(Composer需要php5.3.2以上才能运行)1.下载Composer包curl
Stella981 Stella981
3年前
PHP 使用 VarDumper 进行优雅调试
使用截图!(https://oscimg.oschina.net/oscnet/fb45d260294466f3e22478ab161768db1b4.jpg)安装方法1.安装composer.//安装Composer,如果已经安装过,可不必再安装cur
Stella981 Stella981
3年前
Codeigniter composer 和 __autoload魔术方法冲突解决
_废话不多说了,直接看源代码把_CI首先加载的是system/core/Codeigniter.php阅读发现(165行):if($composer_autoloadconfig_item('composer_autoload')){if($composer_autoloadTRUE)
Stella981 Stella981
3年前
Composer使用
提示:不要忘了经常执行composerselfupdate以保持composer一直是最新版本哦!PHP版本必须是5.4已上版本phpv检测当前php版本linux安装:局部安装1\.进入到自己项目目录:如 cd/home/www/2\.要真正获取Composer,我们需要做两件事。首先安装Compose
Wesley13 Wesley13
3年前
mq的概念(一种互联网项目开发方式)
前言现在一个互联网时代,也是一个大数据时代。随着互联网的高速发展,对产品的要求越来越高。尽管现在IT技术也已经很成熟,但是还有很多刚开始接触互联网项目的团队却不知道如何下手。前两天我见了一名创业者,与他公司的技术负责人了解了一下他们的项目架构,觉得很有问题,但是他们已经开发了半年之久要想从根本解决问题已经不太容易了。关于mq思想,就是想讲给那些即