基于PHP规范的自动加载方式(composer配置)
Posted 与f
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于PHP规范的自动加载方式(composer配置)相关的知识,希望对你有一定的参考价值。
针对php这种编程语言,到目前FIG指定了五个规范,分别如下:
- PSR0:自动加载;
- PSR1:基本代码规范;
- PSR2:代码样式规范;
- PSR3:日志接口规范;
- PSR4:自动加载规范;
看上去PSR4与PSR0是重复了,但是PSR4规范比较干净,可以看成PSR0规范的升级版。二者最重要区别在于:PSR0规范中,下划线会被转换为目录分隔符,但是PSR4中下划线不具有特殊的含义。二者都是通过特定的目录、文件名以及类名,实现快速查找到类文件,并将相应的类加载进来。
PSR0和PSR4要求有个命名的空间,对上述的ClassTest类做相应的修改如下:
<?php namespace ClassTestLib; class ClassTest{ public function test() { echo "hello world!"; } }
那么对应的文件的路径应该改为\\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
以上是关于基于PHP规范的自动加载方式(composer配置)的主要内容,如果未能解决你的问题,请参考以下文章