本文实例讲述了CI框架实现创建自定义类库的方法。分享给大家供大家参考,具体如下:
当我们使用 “类库” 这个词的时候,通常我们指的是位于 libraries 这个目录下的那些类。
接下来我们将介绍 如何在 application/libraries 目录下创建你自己的类库,和全局的框架类库独立开来。
另外,如果你希望在现有的类库中添加某些额外功能,CodeIgniter 允许你扩展原生的类, 或者你甚至可以在你的 application/libraries 目录下放置一个和原生的类库同名的文件 完全替代它。
总结起来:
你可以创建一个全新的类库, 你可以扩展原生的类库, 你可以替换掉原生的类库。注:除了数据库类不能被扩展或被你的类替换外,其他的类都可以。
存储位置
你的类库文件应该放置在 application/libraries 目录下,当你初始化类时,CodeIgniter 会在这个目录下寻找这些类。
命名约定
文件名首字母必须大写,例如:Myclass.php 类名定义首字母必须大写,例如:class Myclass 类名和文件名必须一致类文件
类应该定义成如下原型:
<?phpdefined('BASEPATH') OR exit('No direct script access allowed');class Someclass { public function some_method() { }}
使用你的类
在你的 控制器 的任何方法中使用如下代码初始化你的类:
$this->load->library('someclass');
其中,someclass 为文件名,不包括 .php 文件扩展名。文件名可以写成首字母大写, 也可以写成全小写,CodeIgniter 都可以识别。
一旦加载,你就可以使用小写字母名称来访问你的类:
$this->someclass->some_method();
初始化类时传入参数
在加载类库的时候,你可以通过第二个参数动态的传递一个数组数据,该数组将被传到 你的类的构造函数中:
$params = array('type' => 'large', 'color' => 'red');$this->load->library('someclass', $params);
如果你使用了该功能,你必须在定义类的构造函数时加上参数:
<?php defined('BASEPATH') OR exit('No direct script access allowed');class Someclass { public function __construct($params) { // Do something with $params }}
你也可以将参数保存在配置文件中来传递,只需简单的创建一个和类文件同名的配置文件, 并保存到你的 application/config/ 目录下。要注意的是,如果你使用了上面介绍的方法 动态的传递参数,配置文件将不可用。
在你的类库中使用 CodeIgniter 资源
在你的类库中使用 get_instance()
函数来访问 CodeIgniter 的原生资源,这个函数返回 CodeIgniter 超级对象。
新闻热点
疑难解答