2019独角兽企业重金招聘Python工程师标准>>>
一、定义 辅助函数是帮助我们完成特定任务的函数,每一个辅助函数文件仅仅是一些函数的集合。每个辅助函数处理一个特定的任务,并且不必依靠其他函数。
二、几种辅助函数的作用
1.URL Helpers:创建连接
2.FormHelpers:创建表单
3.Text Helpers:提供一系列的格式化输出方式
4.Cookie Helpers:设置和读取COOKIE
5.File Helpers:处理文件
三、辅助函数的使用
1.辅助函数的载入:CodeIgniter默认是没有载入辅助函数文件的,如果想要使用辅助函数必须先载入它、一旦被载入,辅助函数就将全局可用(golbally available),可以在controller和views中使用它们。辅助函数可以在控制器的任何地方被载入,甚至可以在视图文件中被载入(CodeIgniter不建议这么做)。请在使用辅助函数之前载入他们,可以在控制器构造函数中载入他们以便辅助函数能自动在其他函数之前被载入,也可以在要用的辅助函数的地方当场载入,但须注意辅助函数并不返回值,多以不要尝试将它符给一个变量。
2.辅助函数文件放置的位置:辅助函数文件一般保存在system/'helpers或application/helpers文件夹中。CodeIgniter将会先在application/helpers寻找对应的辅助函数文件,如果目录不存在或者目录先没有对应当的辅助函数文件,CI才会载入system/helpers下的辅助函数文件。
3.载入单个辅助函数的语法:$this->load->helper('name'); 其中name是辅助函数文件的名字(不带.php后缀和"helper"部分) 例如,要载入文件名为url_helper.php的URL Helper,你将会使用下面的语句 $this->load->helper('url');
4.载入多个辅助函数:$this->load->hepler(array('helper1','hepler2','hepler3'));
5.自动载入辅助函数:可以通过打开application/config/autoload.php,并自动载入数组中增加辅助函数的实现。$config['enable_hooks'] = TRUE;
6.使用辅助函数: 一旦你载入了想要的辅助函数文件,就可以用标准的函数调用方法来使用里面的函数,例如使用anchor()函数来建立一个连接,在视图文件中可以这样做:其中Click Here是连接的名字,blog/comments是连接的URI。
7.扩展Helpers 如果你想做的只是在原有的helper中添加一些新的功能,比如添加一两个新的方法,或者是修改一个方法;就不值得重新写自己的helper。在这种情况下,最好就是“扩展”已有的helper。“扩展”一词用在这里不是很恰当,因为Helper的方法是过程式(procedural)和离散(discrete)的,在传统的语言中无法被“扩展”,不过CodeIgniter中,可以添加和修改helper的方法。
如果想扩展一个原有的Helpers,子application/helpers/目录下创建一个新的helper,新helper的名字是在被扩展的Helper的名字的开头多加一个MY_(这是可以配置的),在application/config/config.php文件$config['subclass_prifix'] = 'MY_';,需**注意**所有的CodeIgniter自带的库都被冠以CI_这样的前缀命名,不要使用CI_作为自定义前缀。
8.扩展一个本地已有的Array Helper的示例
文件:applicaton/helpers/MY_array_helper.php
添加或重写(override)其中的一些方法
//any_in_array() is not in the Array Helper,so it defines a new function function 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() id included in Array Helper,so it overrides the native function function random_element($array){ shuffle($array); return array_pop($array); }
**9.辅助函数列表:**详见http://codeigniter.org.cn/user_guide/toc.html