您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

CodeIgniter学习笔记 Item9--CI中的类库

2024/3/15 21:44:58发布28次查看
codeigniter类库
所有的类库文件存放在system/libraries 文件夹。大多数情况下你需要预先在controller中初始化后才能使用它们:
[code]$this->load->library('class name');
class name是你想要使用的类名。例如,要载入“表单验证类”,你可以这样做:
[code]$this->load->library('form_validation');
建立你的类库文件
你的类库文件必须保存在 application/libraries 文件夹,codeigniter将在这个文件夹中寻找并初始化它们。
命名约定
文件名首字母大写。例如: myclass.php
类声明首字母大写。例如: class myclass
类的名字和文件名应相同。
所有的类应有基础原型
[code]<?php if (!defined('basepath')) exit('no direct script access allowed'); class someclass { public function some_function() { } } /* end of file someclass.php */
在所有的controller 函数中,你可以用以下的标准方式初始化你的类:
[code]$this->load->library('someclass');
当 someclass 是文件名时,不用加上”.php”扩展名.这里名字不分大小写.
一旦你自定义的类加载完毕,你可以通过以下方式调用类,注意使用 小写 的名字:
[code]$this->someclass->some_function(); // 对象的实例名永远都是小写的
当初始化类库时,你可以通过第二个参数动态的传递数组到类的构造函数中去:
[code]$params = array('type' => 'large', 'color' => 'red'); $this->load->library('someclass', $params);
当你使用这个特性时,你必须为类的构造函数加上参数:
[code]<?php if (!defined('basepath')) exit('no direct script access allowed'); class someclass { public function __construct($params) { // do something with $params } } ?>
要在你自定义的类库中访问codeigniter的原始资源,你必须使用 get_instance() 函数。一般来说在你的控制器函数中你可以通过 $this 调用任何可用的codeigniter函数:
[code]$this->load->helper('url'); $this->load->library('session'); $this->config->item('base_url');
当你在自定义类中想使用codeigniter原始类时,你可以这样做:
首先,定义codeigniter对象赋给一个变量:
[code]$ci =& get_instance();
一旦定义某个对象为一个变量,你就可以使用那个变量名取代 $this:
[code]$ci =& get_instance(); $ci->load->helper('url'); $ci->load->library('session'); $ci->config->item('base_url');
替换原始类
简单的将你自己的类命名为与原始类一样就能使codeigniter使用这个新类.要使用这个特性,文件名与类声明必须与原始类完全一致。例如,要替换原始的 email 类库。你必须创建一个文件application/libraries/email.php, 并按如下方式声明类:
[code]class ci_email { }
扩展现有类
如果你需要在现有类库中加入一两个新的功能,那就完全不必要替换整个类库文件.你只需简单地扩展(继承)现有的类,扩展一个类就像在类中增加一些例外:
扩展的类必须申明由父类扩展而来。
新扩展的类所在的文件必须以 my_ 为前缀(这个选项是可配置的)。
例如,要扩展原始类email类你要建立文件application/libraries/my_email.php,并按如下方式在文件中声明:
[code]class my_email extends ci_email { }
要载入扩展子类,你应该使用标准字符名,请不要使用前缀,例如,要载入上文说过的email扩展子类,你应该这样写:
[code]$this->load->library('email');
以上就是codeigniter学习笔记 item9--ci中的类库的内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product