【转】CodeIgniter定义自己的Helper和Helper的方法

最近做程序,采用了PHP+CodeIgniter框架,总体来说这框架很轻而且上手也很快的。

首先,说下如何定义自己的Helper,个人理解helper其实就是定义函数方法。

如果要建个全新的自己的Helper,只要到application/helpers中创建一个php文件,命名是有要求的,helpername_helper.php,定义名字时后缀必须跟上_helper。

比如,你想建个名为goheaven的helper,那文件的名字就是goheaven_helper.php。引用的话也很简单,$this->load->helper(‘goheaven‘),然后就可以随意使用helper中的函数方法了。

如果要扩展CodeIgniter中原先就存在的helper的话,比如你想扩展array,命名就要用MY_array_helper.php,这样当你再引用array的helper时,就会自动调用你定义的array了。

其中MY_前缀,其实可以根据自己的喜好来修改,到config.php中找到$config[‘subclass_prefix‘] = ‘MY_‘修改下就可以了。

再来说下如何定义自己的Library,个人理解Library其实就是定义Class。

如果要建个全新的自己的Helper,只要到application/libraries中创建一个php文件,命名是有要求的,Libraryname.php,首字母必须大写。比如,你想建个名为goheaven的library,那文件的名字就是Goheaven.php。Class的名字必须与文件名的Goheaven相一致。引用的话也很简单,$this->load->libraries(‘goheaven‘)。

如果要扩展CodeIgniter中原先就存在的Library的话,比如你想扩展email,命名就要用MY_Email.php,这样当你再引用email的library时,就会自动调用你定义的email了。Class的名字应该为class MY_Email extends CI_Email。

如果想要Helper和Library自动调用的话,到application/config/autoload.php中添加。

还有一个重点要说下,如果在自定义的Helper和Library中要引用CodeIgniter的方法和类的话,首先,$CI =& get_instance();相当于平时的$this,$CI->load->helper(‘url‘)=$this->load->helper(‘url‘);

其实还有一个是Core Class,其实和Library同一个道理,就不再进一步说明了

时间: 2025-01-06 02:54:12

【转】CodeIgniter定义自己的Helper和Helper的方法的相关文章

Codeigniter MongoDB扩展之使用Aggregate实现Sum方法

本篇文章由:http://xinpure.com/2015/01/07/codeigniter-mongodb%e6%89%a9%e5%b1%95%e4%b9%8b%e4%bd%bf%e7%94%a8aggregate%e6%96%b9%e6%b3%95%e5%ae%9e%e7%8e%b0mysql%e7%9a%84sum%e6%96%b9%e6%b3%95/ Codeigniter MongoDB扩展之使用Aggregate实现Sum方法 以下就是我在使用 Codeigniter 的 Mong

定义c/c++全局变量/常量几种方法的区别(转载)

出自:http://www.cnblogs.com/yaozhongxiao/archive/2010/08/08/1795338.html 在讨论全局变量之前我们先要明白几个基本的概念:  1. 编译单元(模块): 在ide开发工具大行其道的今天,对于编译的一些概念很多人已经不再清楚了,很多程序员最怕的就是处理连接错误 (link error)  因为它不像编译错误那样可以给出你程序错误的具体位置,你常常对这种错误感到懊恼,但是如果你经常使用 gcc,makefile等工具在linux或者嵌入

定义页面显示编码的2个方法

1,在html代码中,可以用<meta>标签,加在<head>标签里: <meta content-type="text/html" charset="utf-8" /> 2,在php代码中,用header()函数,加在代码开头: header("content-type:text/html;charset=utf-8"); 定义页面显示编码的2个方法

实验四 (1):定义一个形状类(Shape)方法:计算周长,计算面积

(1)定义一个形状类(Shape)方法:计算周长,计算面积子类:矩形类(Rectangle) :额外的方法:differ() 计算长宽差圆形类(Circle)三角形类(Triangle)正方形类(Square) 矩形的子类生成几个不同的形状对象,放在一个Shape类型的数组里,分别求每个形状的周长和面积.如果形状对象是一个矩形,且不是正方形,则计算长宽差. 1 package com.tiger.practice; 2 3 class Shape { 4 5 public double leng

js对象定义的最常用的三种方法

定义对象:属性和方法的结合体(变量和函数的结合体) 1.(***)var obj = {} 2.var obj = new Object(); 3.使用function定义对象 具体例子分别为: 1 // 1.定义obj的对象 2 // obj:对象名 3 var obj = { 4 // height,weight,sex称为对象的属性 5 height: 170, // 使用,分隔属性和方法 6 weight: 90, 7 sex: '大美女', 8 9 // say():称为对象的方法 1

java在类定义时对hashset的便捷初始化方法

有时候我们在类成员定义时,当这个类成员类型为 HashSet时,我们可以不方便调用 add函数进行初始化,所以可以采用下面的便捷方式来进行初始化 1 public class MyTest{ 2 3 final HashSet<String> set = new HashSet<String>() { 4 { 5 add("a"); 6 add("b"); 7 add("c"); 8 9 } 10 }; 11 public

JS内置对象的原型不能重定义?只能动态添加属性或方法?

昨天马上就快下班了,坐在我对面的同事突然问我一个问题,我说“爱过”,哈哈,开个玩笑.情况是这样的,他发现JS的内置对象的原型好像不能通过字面量对象的形式进行覆盖, 只能动态的为内置对象的原型添加属性或方法,下面那个具体的例子说明: var arr=[]; Array.prototype={ push:function(){ alert("1"); } }; arr.push(); //没有任何输出 有人可能会说了“你先定义的arr,后来又修改了Array.prototype,这时Arr

定义新的字体/引入字体文件方法总结

<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <style> /* 两种定义字体的方法: */ @font-face { font-family: 'PingFang'; src: url('pingfang/PingFang Regular.eot'); src: local('PingFang Regular'), loca

python类的使用(类定义,构造器,类属性,方法)

注:这里只描述使用方法,具体类的概念长篇大论就不要为难我这个懒人了. 总之一句话编程语言只是一个工具,会用就行,好用就行.打破砂锅问到底,我觉得有必要研究一下C,汇编,电子链路等. 1 class cltdy: #定义类,并起一个名字 2 n = 1000 #类属性,类内的变量 3 def __init__(self,name,age,profession='IT民工'): #构造函数,类接收外部传入参数全靠构造函数 4 self.name = name 5 self.age = age 6 s