我已经在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'
);