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。

将显示以下文件结构。

/libraries
		/My_driver
			My_driver.php
			/drivers
My_driver _first_driver.php
Codeigniter驱动程序1

在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驱动程序2

看上面的快照, 父驱动程序类通过函数invoke1调用。

现在运行URL http://localhost/driver/index.php/mydrive/invoke2

Codeigniter驱动程序3

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

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?