zoukankan      html  css  js  c++  java
  • 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": "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();
    ?>

      

  • 相关阅读:
    wpf之依赖属性
    wpf之布局控件
    WPF之绑定
    wpf之触发器
    wpf之样式
    wpf之TreeView
    wpf(五)
    【Javaweb】poi实现通过上传excel表格批量导入数据到数据库
    Java读取批量Excel文件
    Centos上通过yum命令删除有关MySQL
  • 原文地址:https://www.cnblogs.com/boundless-sky/p/11407958.html
Copyright © 2011-2022 走看看