本篇文章给大家分享的是有关使用CI框架怎么创建一个自定义类库,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
<>强命名约定强>
- <李>
文件名首字母必须大写,例如:Myclass。李php
> <李>类名定义首字母必须大写,例如:Myclass类
李> <李>类名和文件名必须一致
李><强>类文件强>
类应该定义成如下原型:
& lt; php ? 定义(& # 39;BASEPATH& # 39;),或是退出(& # 39;No  direct script access 允许# 39;); class Someclass  { ,public function  some_method () ,{ ,} }
<强>使用你的类强>
在你的控制器的任何方法中使用如下代码初始化你的类:
$ this→→加载库(& # 39;someclass& # 39;);
其中,someclass为文件名,不包括。php文件扩展名。文件名可以写成首字母大写,也可以写成全小写,CodeIgniter都可以识别。
一旦加载,你就可以使用小写字母名称来访问你的类:
$ this→someclass→some_method ();
<强>初始化类时传入参数强>
在加载类库的时候,你可以通过第二个参数动态的传递一个数组数据,该数组将被传到你的类的构造函数中:
params 美元;=,数组(& # 39;类型# 39;,=祝辞,& # 39;大# 39;,,& # 39;颜色# 39;,=祝辞,& # 39;红色# 39;); $ this→负载→库(& # 39;someclass& # 39;,,美元params);
如果你使用了该功能,你必须在定义类的构造函数时加上参数:
& lt; ? php 定义(& # 39;BASEPATH& # 39;),或是退出(& # 39;No  direct script access 允许# 39;); class Someclass  { ,public function  __construct (params)美元 ,{//才能,Do something with params美元 ,} }
你也可以将参数保存在配置文件中来传递,只需简单的创建一个和类文件同名的配置文件,并保存到你的应用程序/配置/目录下。要注意的是,如果你使用了上面介绍的方法动态的传递参数,配置文件将不可用。
<强>在你的类库中使用CodeIgniter资源强>
在你的类库中使用<代码> get_instance() 代码>函数来访问CodeIgniter的原生资源,这个函数<强>返回CodeIgniter超级对象强>。
通常情况下,<强>在你的控制器方法中你会使用强> <代码> $ this 代码> <强>来调用所有可用的CodeIgniter方法强>:
$ this→负载→辅助(& # 39;url # 39;); $ this→负载→库(& # 39;会话# 39;); $ this→设置→项目(& # 39;base_url # 39;);
但是<代码> $ this 代码> <强>只能在你的控制器,模型或视图中直接使用>强,如果你想在你自己的类中使用CodeIgniter类,你可以像下面这样做:
首先,将CodeIgniter对象赋值给一个变量:
CI 美元;=,,get_instance ();
一旦你把CodeIgniter对象赋值给一个变量之后,你就可以使用这个变量来代替$ this
CI 美元;=,,get_instance (); CI→美元负载→辅助(& # 39;url # 39;); CI→美元负载→库(& # 39;会话# 39;); 美元CI→设置→项目(& # 39;base_url # 39;);
注:
上面的<代码> get_instance() 代码>函数通过引用来传递:
CI 美元;=,,get_instance ();
这是非常重要的,引用赋值允许你使用原始的CodeIgniter对象,而不是创建一个副本。
既然类库是一个类,那么我们最好充分的使用OOP原则,所以,为了让类中的所有方法都能使用CodeIgniter超级对象,建议将其赋值给一个属性:
class Example_library { ,protected CI美元; ,//我们# 39;ll use a 构造函数,,as 你停下来# 39;t directly call a 函数 ,//得到a property 定义。 ,public function  __construct () ,{//才能,Assign 从而CodeIgniter super-object 这个美元才能→CI =,, get_instance (); ,} ,public function  foo () ,{ 这个美元才能→CI→负载→辅助(& # 39;url # 39;); 重定向才能(); ,} ,public function 酒吧() ,{ echo 才能;这→美元CI→设置→项目(& # 39;base_url # 39;); ,} }
<强>使用你自己的类库替换原生类库强>