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

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": "libo21/spider_script",
    "description": "general spider for sina finance market group",
    "type": "project",
    "require": {
        "php": ">=5.3.10"
    },
    "autoload": {
    	"files":[],
	"psr-4":{
	   "Test\\" :"core/"
	}
    }
}

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

<?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”内容:

<?php
require_once __DIR__.'/vendor/autoload.php';
$obj = new \Test\ClassTest();//实例化类
echo $obj->getName();
?>

  

完!

 

转载于:https://www.cnblogs.com/webTechnology/p/8351230.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值