我在CodeIgniter中使用什么命名空间加载作曲家类?

时间:2018-10-30 10:19:37

标签: php namespaces composer-php codeigniter-3

我正在编写一个想在多个CodeIgniter项目中使用的composer程序包。该问题的答案可以解释如何同时修改程序包和应用程序。

包裹

我创建了一个名为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.jsonapplication/等之后的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

我想这个问题与名称空间有关。

有任何线索吗?

0 个答案:

没有答案
相关问题