Не удается найти класс в codeigniter папки поставщика - PullRequest
0 голосов
/ 05 мая 2018

Я пытаюсь использовать генератор счетов из webchemistry . Я установил это с composer require webchemistry/invoice:^1.0.

Я переместил эту папку в мою папку APPPATH . 'third_party\vendor\';. Итак, в моем конфигурационном файле у меня есть следующая строка:

$config['composer_autoload'] = APPPATH . 'third_party\vendor\autoload.php';

мой файл index.php (в корне) содержит этот код:

include_once BASEPATH.'../application/third_party/vendor/autoload.php';

В моем контроллере я пытаюсь сделать следующее:

public function createInvoice()
{
    $company = new \WebChemistry\Invoice\Data\Company();
}

Это приводит к следующей ошибке:

Сообщение: класс 'WebChemistry \ Invoice \ Data \ Company' не найден

Когда в моей IDE (PhpStorm) я нажимаю Ctrl + клик по Компании, она может разрешиться правильно и указывает на правильный файл. Почему PHP не может разрешить это в правильном расположении файла?

Ответы [ 2 ]

0 голосов
/ 06 мая 2018

Вы не должны ничего делать с каталогом vendor, если не знаете, что делаете. Если вы хотите изменить каталог, в котором Composer устанавливает зависимости, вы можете сделать это, установив vendor-dir в composer.json config:

{
    ...
    "config":{
        "vendor-dir": "third_party/vendor"
    }
}
0 голосов
/ 06 мая 2018

добавьте файл include и следующий код в ваш контроллер при запуске

$config['composer_autoload'] = false; // no need change this, make it default

<?php
require_once(APPPATH . '/third_party/vendor/autoload.php');
use \WebChemistry\Invoice\Data\Company as Company;

class Invoice extends CI_Controller {

    public function createInvoice(){
        $company = new Company();
    }

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