如何通过自动加载编写器在Codeigniter中加载库



我已经在CodeIgniter中通过composer安装了自动加载,我还测试了它是否包含文件autoload.php并且它是。所以,如果我在库中有一个名为Pager的库,那么我如何实例化(加载)Pager类?这是一个新的CodeIgniter安装,版本3.1.2

我在配置中这样设置:

$config['composer_autoload'] = TRUE;

我在欢迎控制器中尝试了以下方法:

$pager = new librariesPager();  //Class 'librariesPager' not found 
$pager = new librariesPager(); //Class 'librariesPager' not found
$pager = new libraryPager();   // Class 'libraryPager' not found
$pager = new Pager();            // Class 'libraryPager' not found

下面是来自libraries目录的Pager类:

class Pager  {
    function __construct()
    {
        parent::__construct();
        echo __CLASS__;
    }
}

谢谢你的帮助!

这实际上与CodeIgniter无关。

您需要告诉composer您有自己的PHP类,这些类不在自动加载的文件中。

在你的composer.json中添加一个:

{
    // ...
    "autoload": {
        "psr-4": { "MyNamespace\": "src/library/MyNamespace" },
        "files": ["src/some/custom/filepath.php"]
    }
}

然后在控制台update中运行以更新autoload.php与您的新配置:

$ composer update

现在每次使用MyNamespace中的类,比如MyNamespaceMyClass,它都会查找文件src/library/MyNamespace/MyClass.php
此外,文件src/some/custom/filepath.php总是自动包含的,所以您不需要手动包含它。(我不知道你的用途是什么)。

查看更多信息:https://getcomposer.org/doc/04-schema.md#autoload

是否已添加到autoload.php

$autoload['libraries'] = array(
'pager'
);

相关内容

  • 没有找到相关文章

最新更新