加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

composer的autoload来自动加载自己编写的函数库与类库?

发布时间:2020-12-13 21:31:42 所属栏目:PHP教程 来源:网络整理
导读:1、使用命令composer init生成composer.json文件,并编辑autoload选项内容如下: 其中又包含主要的两个选项: files 和 psr-4。 files就是需要composer自动帮我们加载的函数库(不含类),只要在后面的数组中将函数库的文件路径写入即可。 psr-4顾名思义,是

1、使用命令composer init生成composer.json文件,并编辑autoload选项内容如下:

其中又包含主要的两个选项: files 和 psr-4。

files就是需要composer自动帮我们加载的函数库(不含类),只要在后面的数组中将函数库的文件路径写入即可。
psr-4顾名思义,是一个基于psr-4(http://www.php-fig.org/psr/psr-4/)规则的类库自动加载对应关系,只要在其后的对象中,以?"命名空间": "路径"?的方式写入自己的类库信息即可。
修改完成后,只要执行一下composer update,即可完成对应工作。

注意:每次更新完composer.json后,必须执行composer update后才会生效。

?

{
    "name": "sui/test","description": "test","type": "project","require": {
        "php": ">=5.3.10"
    },"autoload": {
    	"files":[],"psr-4":{
	   "Test" :"core/"
	}
    }
}

我们来深挖一下,探索一下autoload的原理。
在我们修改完composer.json并执行update后,将会修改./vender/composer/autoload_psr4.php,比如我的某个项目,其中增加了这样一个对应关系:

1
2
3
4
5
6
7
8
9
10
<?php
?
// autoload_psr4.php @generated by Composer
?
$vendorDir? = dirname(dirname( __FILE__ ));
$baseDir? = dirname( $vendorDir );
?
return? array (
???? ‘Test‘? =>? array ( $baseDir? .? ‘/core‘ ),
);

2、自动加载测试

例如我们在composer.json同一目录下建立文件夹core,并编写ClassTest类:

1 <?php
2 namespace Test;
3 class ClassTest{
4     public function getName(){
5         return "test";
6     }
7 }
8 ?>

编写test.php,并运行test.php,可以看到界面上打印出了“test”内容:

1
2
3
4
5
<?php
require_once? __DIR__. ‘/vendor/autoload.php‘ ;
$obj? =? new? TestClassTest(); //实例化类
echo? $obj ->getName();
?>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读