最近做程序,采用了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同一个道理,就不再进一步说明了

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

  1. Python第十三天 django 1.6 导入模板 定义数据模型 访问数据库 GET和POST方法 SimpleCMDB项目 urllib模块 urllib2模块 httplib模块 django和web服务器整合 wsgi模块 gunicorn模块

    Python第十三天   django 1.6   导入模板   定义数据模型   访问数据库   GET和POST方法    SimpleCMDB项目   urllib模块   urllib2模块 ...

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

    (1)定义一个形状类(Shape)方法:计算周长,计算面积子类:矩形类(Rectangle) :额外的方法:differ() 计算长宽差圆形类(Circle)三角形类(Triangle)正方形类(Sq ...

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

    本篇文章由:http://xinpure.com/codeigniter-mongodb-extension-using-aggregate-sum-method/ Codeigniter Mongo ...

  4. MVC学习笔记----@Helper标签(HelperMethod方法)和HtmlExtesion扩展

    1,HtmlHelper扩展 http://www.cnblogs.com/willick/p/3428413.html http://www.cnblogs.com/zengdingding/p/5 ...

  5. CodeIgniter 定义“全局变量-global variable”,可以在所有controller,model和view中使用

    本文抄自http://www.cnblogs.com/webu/archive/2012/11/20/2779999.html 第一次正儿八经用CodeIgniter框架做项目,结果不会定义全局变量, ...

  6. ContentProvider官方教程(9)定义一个provider完整示例:实现方法,定义权限等

    Creating a Content Provider In this document Designing Data Storage Designing Content URIs Implement ...

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

    有时候我们在类成员定义时,当这个类成员类型为 HashSet时,我们可以不方便调用 add函数进行初始化,所以可以采用下面的便捷方式来进行初始化 public class MyTest{ final ...

  8. 走进C++程序世界-------类的定义和使用(数据成员和方法成员,析构函数,构造函数,内联实现)

    类的成员简介 在C++中,可以通过声明一个类来穿件一种新的类型.类将一组变量(他们的类型通常不同)和一组相关的函数组合在一起.类可以有各种类型的变量组成,还可以包含其他类对象.成员变量称为数据成员它们 ...

  9. iOS开发之--宏定义与const的区别及使用方法

    宏定义的常见用法: 定义一段代码,或指定字符串抽成宏. const(常量): 当有字符串常量的时候,苹果推荐我们使用const,苹果经常把常用的字符串定义成const 宏定义与const的区别: 编译 ...

随机推荐

  1. Android Studio 导入外部lib文件

    Android Studio 导入外部lib文件   1.将jar包放入Module里的lib文件夹中.(自己创建lib文件夹) 2.在project选中jar包点击右键"Add as li ...

  2. Web测试Selenium:如何选取元素

    Web测试工具Selenium:如何选取元素 2009-02-17 23:23 by 敏捷的水, 5372 阅读, 22 评论, 收藏, 编辑 selenium是一个非常棒的Web测试工具,他对Aja ...

  3. mvc-2事件监听

    现代浏览器都支持的事件 click dbclick mouseover mousemove mouseout focus blur change(表单输入框特有) submit(表单特有) addEv ...

  4. ember.js:使用笔记8 加载测试与集成测试

    emberjs使用的测试工具为qunit.js: 加载:将runner.js添加到Index.html:大致内容: if (window.location.search.indexOf("? ...

  5. JavaScript有哪些延迟加载的方式?

    defer和async,动态创建DOM方式(用得最多),按需异步载入js.

  6. [Cocos2d-x For WP8]EaseActions缓动动作

    我们用Silverlight框架开发WP8的应用程序的时,编写动画可以使用缓动效果来实现缓动动画对吧,那么在Cocos2d-x框架里面我们一样是可以缓动动作(缓动动画),其实技术的东西都是想通的,如果 ...

  7. SecureCrt脚本(三)二级对象之Screen详解

    Crt自动化 测试 SecureCrt脚本 JS脚本   1.引言 2.Screen属性和方法 2.1.属性 2.1.1.CurrentColumn 2.1.2.CurrentRow 2.1.3.Co ...

  8. java向图片上写字,两个图片合并的方法

    package writeimg; import javax.imageio.ImageIO; import java.awt.Color; import java.awt.Font; import ...

  9. ztree学习之异步加载节点(一)

    ztreedemo.jsp: <%@ page language="java" import="java.util.*" pageEncoding=&qu ...

  10. Swift Internal Parameter and External Parameter 外部参数和内部参数

    今天跟大神又学习了些关于IOS开发Swift语言的外部参数和内部参数 func doSomething(num1: Int, num2: Int) -> Int { return num1 + ...