CodeIgniter驱动程序

本文概述

  • 什么是驱动程序
  • 初始化驱动程序
  • 创建自己的驱动程序
  • 制作文件结构
  • 制作驱动程序清单
在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中创建驱动程序需要三个步骤。
  1. 制作文件结构
  2. 制作驱动程序清单
  3. 制作驱动程序
制作文件结构 转到CodeIgniter的system / libraries文件夹, 然后新建一个My_driver文件夹。在此文件夹中创建一个文件My_driver.php。
现在在My_driver文件夹中新建一个文件夹, 将其命名为driver。在这个新文件夹中, 创建一个文件My_driver_first_driver.php。
【CodeIgniter驱动程序】将显示以下文件结构。
/libraries /My_driver My_driver.php /drivers My_driver _first_driver.php

CodeIgniter驱动程序

文章图片
在CodeIgniter中, 驱动程序库结构是这样的:子类不扩展, 因此它们不继承主驱动程序的属性或方法(在本例中为My_driver)。
  • My_driver-这是一个类。
  • My_driver.php-父驱动程序
  • My_driver_first_driver.php-子驱动程序
制作驱动程序清单 在system / libraries / My_driver文件夹中的My_driver.php文件中, 编写以下代码,
< ?php defined('BASEPATH') OR exit('No direct script access allowed'); class CI_My_driver extends CI_Driver_Library { function __construct() { $this-> valid_drivers = array('first_driver'); } function index() { echo "< h1> This is Parent Driver< /h1> "; } }

在system / libraries / My_driver / drivers中的My_driver_first_driver.php文件中, 编写以下代码,
< ?php defined('BASEPATH') OR exit('No direct script access allowed'); class My_driver_first_driver extends CI_Driver { function first() { echo "< h1> This is first Child Driver< /h1> "; } } ?>

使用以下代码在应用程序/控制器中创建控制器文件Mydrive.php,
< ?php defined('BASEPATH') OR exit('No direct script access allowed'); class Mydrive extends CI_Controller { function __construct() { parent::__construct(); $this-> 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
CodeIgniter驱动程序

文章图片
看上面的快照, 父驱动程序类通过函数invoke1调用。
现在运行URL http://localhost/driver/index.php/mydrive/invoke2
CodeIgniter驱动程序

文章图片
看一下上面的快照, 使用函数invoke2调用了子驱动程序类。

    推荐阅读