Я только что обновил свой проект с CodeIgniter 2 до CodeIgniter 3 для функции автоматической загрузки драйвера. Я пытаюсь создать собственный драйвер, но, к сожалению, документация не дает мне шагов для этого.
Мой драйвер работал нормально в CodeIgniter 3, но не работает в 2. Я обновил все свои классы и имена файлов в соответствии с документация.
У меня есть следующая структура файла:
/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 и больше не работает? И как я могу это исправить?
Все ваши имена файлов и имена классов в порядке. Единственная ошибка в массиве $ valid_drivers. У вас есть это:
$this->valid_drivers = array('testdriver_test');
И вы должны ввести это:
$this->valid_drivers = array('test');
Других решений пока нет …