博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于PHP规范的自动加载方式(composer配置)
阅读量:7215 次
发布时间:2019-06-29

本文共 844 字,大约阅读时间需要 2 分钟。

针对PHP这种编程语言,到目前FIG指定了五个规范,分别如下:

  • PSR0:自动加载;
  • PSR1:基本代码规范;
  • PSR2:代码样式规范;
  • PSR3:日志接口规范;
  • PSR4:自动加载规范;

看上去PSR4与PSR0是重复了,但是PSR4规范比较干净,可以看成PSR0规范的升级版。二者最重要区别在于:PSR0规范中,下划线会被转换为目录分隔符,但是PSR4中下划线不具有特殊的含义。二者都是通过特定的目录、文件名以及类名,实现快速查找到类文件,并将相应的类加载进来。

PSR0和PSR4要求有个命名的空间,对上述的ClassTest类做相应的修改如下:

那么对应的文件的路径应该改为\lib\ClassTestLib\ClassTest.php,此时修改composer.json中的autoload如下:

"autoload":{    "psr-0":{        "ClassTestLib":"lib/"    }  }

可能你发现psr0的值有一些奇怪,是的。在这里ClassTestLib代表的是命名空间,而"lib"是目录名。加载对应的类文件的时候,搜索的路径是lib/ClassTestLib,而不是ClassTestLib/lib,这是在书写composer.json的时候需要注意的一点。

  如果命名空间中存在着“\”,则在书写对应的composer.json的时候需要在相应的“\”再添加一个“\”。例如,如果命名空间改为ClassTest\Lib,相应的对应与应用根目录的路径名称应该变为\lib\ClassTest\Lib\ClassTest.php,对应的composer.json中的autoload应该变为:

"autoload":{    "psr-0":{        "ClassTest\\Lib":"lib/"    }  }

 

 

转 :https://www.cnblogs.com/yue-blog/p/5904275.html

 

你可能感兴趣的文章
snabbdom源码解析(七) 事件处理
查看>>
在北京做Java开发如何月薪达到两万,需要技术水平达到什么程度?
查看>>
移动端适配之二:visual viewport、layout viewport和ideal viewport介绍
查看>>
python大佬养成计划----flask_sqlalchemy操作数据库
查看>>
Chrome开发者工具关于网络请求的一个隐藏技能
查看>>
Git入门与开发
查看>>
Java编程基础04——流程控制语句
查看>>
vue-threeJS数据驱动的三维图形可视化
查看>>
Ubuntu 18.04.1 搭建Java环境和HelloWorld
查看>>
Flutter 实现根据环境加载不同配置
查看>>
浏览器保存密码后自动填充问题
查看>>
前端每日实战:93# 视频演示如何用纯 CSS 创作一根闪电连接线
查看>>
PhpStorm升级后调用某些类提示phpstorm Unhandled exceptions
查看>>
Python 2.x 与 Python 3.x 的区别
查看>>
如何实现对tcl脚本的类GDB调试
查看>>
基于java的IO流的文件读取系统
查看>>
谈谈 Docker 网络
查看>>
laravel-admin集成ueditor编辑器的图片列表显示问题解决方法
查看>>
伪数组(ArrayLike)
查看>>
ES6精华:字符串扩展
查看>>