CodeIgniter辅助函数helper详解

三仙归了个洞

三仙归了个洞

2016-02-19 11:28

下面图老师小编跟大家分享CodeIgniter辅助函数helper详解,一起来学习下过程究竟如何进行吧!喜欢就赶紧收藏起来哦~

1.辅助函数概述

helper辅助函数,顾名思义,就是帮助我们完成各种特定任务的一系列函数。并且每个辅助函数文件是一系列的功能集合汇总在一起。比如可以帮助我们创建链接的URL Helpers,有创建表的Form Helpers,有文本格式化输出的Text Helpers,有设置和读取cookie的Cookie Helpers,还有文件File Helpers等等。

不同于大多数其他系统的是,CodeIgniter的辅助函数没有采用类的方式实现。而是简单的,程序的功能。每个辅助函数处理一个特定的任务,并且不必依靠其他函数。

CodeIgniter默认是没有载入辅助函数文件的,所以如果你想用辅助函数,就必须先载入它。 一旦被载入,辅助函数将全局可用(globally available),你可以在 controller 和 views 中使用它们。

辅助函数文件一般保存在 system/helpers 或 application/helpers 文件夹中。CodeIgniter 将会先在 application/helpers 寻找对应的辅助函数文件, 如果目录不存在或者目录下没有对应的辅助函数文件,CI 才会载入 system/helpers 下的辅助函数文件。

2.载入辅助函数

载入辅助函数是非常简单的,如下所示:

$this-load-helper('name');

其中name是辅助函数文件的名字(不带.php后缀 和"helper" 部分)。

例如,要载入文件名为url_helper.php的URL Helper,可采用下面的语句:

$this-load-helper('url');

辅助函数可以在你的控制器(controller)的任何地方被载入,甚至可以在视图(View)文件中被载入(我们并不建议你这么做)。 请在使用辅助函数之前载入他们。你可以在你的控制器构造函数中载入它们,以便辅助函数能自动在其他函数之前被载入。你也可以在要用到辅助函数的地方当场载入。

注意: 辅助函数载入函数并不返回值,所以不要尝试将它付给一个变量,直接像这样用就可以了。

3.载入多个辅助函数

如果你想一次载入多个辅助函数,你可以这样做:

$this-load-helper( array('helper1', 'helper2', 'helper3') );

4.自动载入辅助函数

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

如果你想要的话,CodeIgniter可以自动为你载入辅助函数。你可以通过打开 application/config/autoload.php ,并往自动载入数组(autoload array)中增加辅助函数来实现。

5.使用辅助函数

一旦你载入了想要用到辅助函数文件,你就可以用标准的函数调用方法来使用里面的函数。

例如,要使用anchor() 函数来建立一个链接,在视图(View)文件里面你可以这样做:

?php echo anchor('blog/comments', 'Click Here');?

这里的"Click Here" 是链接的名字,"blog/comments" 是链接的URI。

注意:辅助函数中的函数名最好做好命名规范,如果同时加载多个辅助函数文件,且其中有名称相同的函数,会导致 CI 出现空白页问题(这也是 PHP 语法错误)。

6.“扩展”辅助函数

你如果想 "扩展"一个原有的 Helpers,可以在你的 application/helpers/ 目录下创建一个新的helper,新的helper的名字是在被“扩展”的Helper的名字开头多加一个 MY_ (这是可以配置的. 见下.).

如果你想做的只是在原有的helper中添加一些新的功能,比如,添加一两个新的方法,或者是修改一个方法;就不值得重写自己的helper。在这种情况下,最好是“扩展”已有的helper。“扩展”一词用在这里不是很恰当,因为Helper的方法是过程式的(procedural) 和离散(discrete)的,在传统的语言环境中无法被“扩展”,不过在CodeIgniter中,你可以添加或修改helper的方法。

例如,扩展一个本地已有的 Array Helper 你应该建立一个文件: application/helpers/MY_array_helper.php, 并添加或重写(override)其中的一些方法:

// any_in_array() is not in the Array Helper, so it defines a new functionfunction any_in_array($needle, $haystack){  $needle = (is_array($needle)) ? $needle : array($needle);  foreach ($needle as $item)  {if (in_array($item, $haystack)){  return TRUE;}}  return FALSE;}// random_element() is included in Array Helper, so it overrides the native functionfunction random_element($array){  shuffle($array);  return array_pop($array);}

7.设定你自己的前缀(Prefix)

用于"扩展" helper 而加上前缀的文件同样也是对库和核心类的扩展.为了设置你自定义的前缀,请打开 application/config/config.php 文件,然后找到如下的条目:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)
$config['subclass_prefix'] = 'MY_';

这里需要注意:由于所有CodeIgniter自带的库都被冠以 CI_ 这样的前缀命名,所以请不要使用CI_来自定义前缀.

展开更多 50%)
分享

猜你喜欢

CodeIgniter辅助函数helper详解

编程语言 网络编程
CodeIgniter辅助函数helper详解

Excel函数详解日期和时间函数

电脑入门
Excel函数详解日期和时间函数

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

ASP 中 DateDiff 函数详解

ASP
ASP 中 DateDiff 函数详解

java equals函数用法详解

编程语言 网络编程
java equals函数用法详解

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

详解Javascript trim()函数实现

Web开发
详解Javascript trim()函数实现

DNF90版本奶妈辅助技能 奶妈辅助技能详解

DNF90级版本 dnf 地下城与勇士
DNF90版本奶妈辅助技能 奶妈辅助技能详解

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

asynctask的用法详解

asynctask的用法详解

Ajax 学习资源 中外都有

Ajax 学习资源 中外都有
下拉加载更多内容 ↓