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 \Test\ClassTest();//实例化类
echo $obj->getName();
?>

  

最新文章

  1. Linux kernel 文件夹说明
  2. angularjs 笔记(1) -- 引导
  3. 用jQuery Mobile搭建一个简单的手机页面
  4. 【转】Jquery ajax方法解析返回的json数据
  5. HttpURLConnection请求网络数据的Post请求
  6. Linux进程管理工具——supervisor
  7. struts(五) 使用通配符 接收参数
  8. Delphi 封装Frame到Dll文件
  9. BZOJ1653: [Usaco2006 Feb]Backward Digit Sums
  10. memcached真实项目中的应用
  11. 什么是epoll
  12. java集合系列——Map介绍(七)
  13. 技术领导(Technical Leader)画像
  14. 《java.util.concurrent 包源码阅读》13 线程池系列之ThreadPoolExecutor 第三部分
  15. CCF系列之数字排序(201503-2)
  16. [archlinux]在linux使用aria2下载磁力链接
  17. gevent实现生产者消费者
  18. 设计模式之建造者模式(Buider)(5)
  19. Redis C客户端Hiredis代码分析
  20. grid网格的流动一

热门文章

  1. 说明资源路径位置类型无法解析The type javax.servlet.http.HttpServletResponse cannot be resolved.
  2. python自定义模块引入报错 pycharm
  3. 蓝桥杯 Island Hopping Java代码
  4. Nacos配置中心使用
  5. MFiX-DEM中的串行碰撞搜索
  6. 进程相关的API函数
  7. 编写优美代码的七条规范(Python版)
  8. 想用Nginx代理一切?行!
  9. python 数据分析之pandas
  10. CodeForces 1408G Clusterization Counting