我刚刚将我的项目从CodeIgniter 2升级到CodeIgniter 3以获得驱动程序自动加载功能。我正在尝试创建一个自定义驱动程序,但遗憾的是文档没有给我执行它的步骤。
我的驱动程序在CodeIgniter 3中运行良好,但它没有在2.我已根据the documentation更新了所有类和文件名。
我有以下文件结构:
/libraries
/Testdriver
/drivers
Testdriver_test.php
Testdriver.php
Testdriver.php的内容:
class Testdriver extends CI_Driver_Library
{
function __construct()
{
$this->valid_drivers = array('testdriver_test'); //Still not sure why this must be here, but the documentation doesn't explain me anything
}
function test()
{
echo "Hello world from parent driver";
}
}
Testdriver_test.php的内容:
class Testdriver_test extends CI_Driver
{
public function index()
{
echo "Hello world!";
}
}
自动加载驱动程序,并在pages.php中调用该函数:
$this->testdriver->test(); //This works, I can successfully call the method from the parent driver
$this->testdriver->test->index(); //This doesn't work, gives me the "Invalid driver requested" error
为什么这在CodeIgniter 2中工作而不再存在?我该如何解决?
答案 0 :(得分:1)
您的所有文件名和类名都可以。错误的是在$ valid_drivers数组中。你有这个:
$this->valid_drivers = array('testdriver_test');
你应该输入:
$this->valid_drivers = array('test');