📅  最后修改于: 2021-01-01 03:31:33             🧑  作者: Mango
在CodeIgniter 2.0及更高版本中引入了驱动程序。
这些是具有父类和许多子类的特殊类型的库。这些子类有权访问父类,但不能访问其兄弟姐妹。它使您可以在控制器内创建更优雅的类和更优雅的语法。
驱动程序位于CodeIgniter文件夹的system / libraries文件夹中。
要初始化驱动程序,请编写以下语法。
$this->load->driver('class_name');
在这里, class_name是您要调用的驱动程序名称。
例如,要调用驱动程序类main_class ,请执行以下操作。
$this->load->driver('main_class');
要调用其方法,
$this->main_class->a_method();
然后可以直接通过父类调用子类,而无需初始化它们。
$this->main_class->first_child->a_method();
$this->main_class->second_child->a_method();
在CodeIgniter中创建驱动程序分三个步骤。
转到CodeIgniter的system / libraries文件夹,并新建一个My_driver文件夹。在此文件夹中创建一个文件My_driver.php。
现在在My_driver文件夹中新建一个文件夹,将其命名为driver。在此新文件夹中,创建一个文件My_driver_first_driver.php。
将显示以下文件结构。
/libraries
/My_driver
My_driver.php
/drivers
My_driver _first_driver.php
在CodeIgniter中,驱动程序库结构是这样的:子类不扩展,因此它们不继承主驱动程序的属性或方法(在本例中为My_driver)。
在系统中的文件My_driver.php /库/ My_driver文件夹中写入以下代码,
valid_drivers = array('first_driver');
}
function index()
{
echo "This is Parent Driver
";
}
}
在系统中的文件My_driver_first_driver.php /库/ My_driver /驱动程序编写如下代码,
This is first Child Driver";
}
}
?>
使用以下代码在应用程序/控制器中创建控制器文件Mydrive.php,
load->driver('my_driver');
}
public function invoke1()
{
$this->my_driver->index();
}
public function invoke2()
{
$this->my_driver->first_driver->first();
}
}?>
在浏览器上,运行URL http://localhost/driver/index.php/mydrive/invoke1
查看上面的快照,使用函数invoke1调用父驱动程序类。
现在运行URL http://localhost/driver/index.php/mydrive/invoke2
看一下上面的快照,使用函数invoke2调用了子驱动程序类。