Как загрузить библиотеку из композитора? - PullRequest
0 голосов
/ 12 июня 2019

Я загружаю библиотеку композитора, подходящую для CodeIgniter, под названием SteeveDroz\Asset, к которой я могу без проблем обращаться с $asset = new SteeveDroz\Asset.

Я бы хотел загрузить его с помощью CodeIgniter $this->load->library('SteeveDroz\Asset'), но я получаю сообщение об ошибке

Невозможно загрузить запрошенный класс: SteeveDroz \ Asset

Можно ли добиться того, чего я хочу? Если да, то как?

Ответы [ 2 ]

1 голос
/ 12 июня 2019

Как упомянул Алекс в своем комментарии , необходимо создать библиотеку адаптера.Для этого я создал универсальный класс:

приложение / библиотеки / 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);
    }
}

приложение / библиотеки / 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');
// ...
0 голосов
/ 12 июня 2019

если вы используете CodeIgniter 3, вы можете изменить application/config/config.php и установить

$config['composer_autoload'] = TRUE

или

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

это автоматически загрузит все ваши зависимости композитора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...