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

Я пишу пакет композитора, который хочу использовать в нескольких проектах CodeIgniter. Ответы на этот вопрос могут объяснить, как изменить пакет и приложение.

Пакет

Я создал пакет для композитора под названием steevedroz/codeigniter-twig. Его composer.json выглядит так:

{
    "name": "steevedroz/codeigniter-twig",
    "type": "library",
    "description": "A simple CodeIgniter library that allows using Twig along with the usual CI helpers",
    "keywords": ["codeigniter", "twig"],
    "homepage": "https://gitlab.com/SteeveDroz/codeigniter-twig",
    "license": "MIT",
    "authors": [{
        "name": "SteeveDroz",
        "role": "Developer"
    }],
    "require": {
        "php": ">=7.0",
        "twig/twig": "^2.5"
    },
    "autoload": {
        "psr-4": {
            "CodeigniterTwig\\": "/"
        }
    }
}

Он содержит основной класс, который я хотел бы загрузить из CodeIgniter, расположенного в корне пакета. Он называется Twig.php и содержит:

<?php
namespace CodeigniterTwig;

class Twig {
    // ...
}

Проект CodeIgniter

Мой проект POC - это базовый проект CodeIgniter с файлом composer.json в корне (рядом с application/, system/ и т. Д.), Который содержит:

{
    "require": {
        "steevedroz/codeigniter-twig": "dev-master"
    }
}

Я запустил composer install, который правильно загрузил мой пакет.

В application/config.php, я установил:

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

Я один из моих контроллеров, я хотел бы загрузить свой класс Twig в виде библиотеки:

$this->load->library('CodeigniterTwig/twig');

Но когда я проверяю результат, я получаю ошибку:

Unable to load the requested class: Twig

Я пробовал использовать разные пространства имен (см. Ниже), но результат всегда одинаков!

  • steevedroz/CodeigniterTwig/twig
  • CodeigniterTwig/twig
  • twig
  • steevedroz/codeigniter-twig/twig

Полагаю, проблема связана с пространствами имен.

Есть подсказка?

...