如何从作曲家加载库?

时间:2019-06-12 07:13:48

标签: codeigniter composer-php loading

我加载了一个适用于CodeIgniter的作曲家库,名为SteeveDroz\Asset,我可以毫无问题地访问$asset = new SteeveDroz\Asset

我希望能够使用CodeIgniter $this->load->library('SteeveDroz\Asset')加载它,但收到错误消息

  

无法加载请求的类:SteeveDroz \ Asset

能否实现我想要的?如果是,怎么办?

2 个答案:

答案 0 :(得分:1)

如Alex在他的comment中所提到的,需要制作一个适配器库。我为此创建了一个通用类:

application / libraries / ComposerAdapter.php

class ComposerAdapter
{
    private $object;

    public function __construct($object)
    {
        $this->object = $object;
    }

    public function __call($method, $args)
    {
        return call_user_func_array([$this->object, $method], $args);
    }
}

application / libraries / Asset.php

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

require('ComposerAdapter.php');

class Asset extends ComposerAdapter
{
    public function __construct()
    {
        parent::__construct(new SteeveDroz\Asset());
    }
}

application / config / autoload.php

// ...
$autoload['libraries'] = array('asset');
// ...

答案 1 :(得分:0)

如果您使用的是CodeIgniter 3,则可以修改application/config/config.php并进行设置

$config['composer_autoload'] = TRUE

$config['composer_autoload'] = FCPATH .'vendor/autoload.php';

这将自动加载您所有的作曲家依赖项。