directory search
欢迎 目录 快速参考图 基本信息 服务器要求 许可协议 变更记录 关于CodeIgniter 安装 下载 CodeIgniter 安装指导 从老版本升级 疑难解答 介绍 开始 CodeIgniter 是什么? CodeIgniter 速记表 支持特性 应用程序流程图 模型-视图-控制器 架构目标 教程 内容提要 加载静态内容 创建新闻条目 读取新闻条目 结束语 常规主题 CodeIgniter URL 控制器 保留字 视图 模型 辅助函数 使用 CodeIgniter 类库 创建你自己的类库 使用 CodeIgniter 适配器 创建适配器 创建核心系统类 钩子 - 扩展框架的核心 自动装载资源 公共函数 URI 路由 错误处理 缓存 调试应用程序 以CLI方式运行 管理应用程序 处理多环境 PHP替代语法 安全 开发规范 类库参考 基准测试类 日历类 购物车类 配置类 Email 类 加密类 文件上传类 表单验证详解 FTP 类 图像处理类 输入类 Javascript 类 语言类 装载类 迁移类 输出类 分页类 模板解析器类 安全类 Session 类 HTML 表格类 引用通告类 排版类 单元测试类 URI 类 User-Agent 类 表单验证 XML-RPC 和 XML-RPC 服务器 Zip 编码类 缓存适配器 适配器参考 适配器 数据库类 Active Record 类 数据库缓存类 自定义函数调用 数据库配置 连接你的数据库 数据库快速入门例子代码 字段数据 数据库维护类 查询辅助函数 数据库类 查询 生成查询记录集 表数据 事务 数据库工具类 JavaScript类 辅助函数参考 数组辅助函数 CAPTCHA 辅助函数 Cookie Helper 日期辅助函数 目录辅助函数 下载辅助函数 Email 辅助函数 文件辅助函数 表单辅助函数 HTML辅助函数 Inflector 辅助函数 语言辅助函数 数字辅助函数 路径辅助函数 安全辅助函数 表情辅助函数 字符串辅助函数 文本辅助函数 排版辅助函数 URL 辅助函数 XML 辅助函数
characters

CodeIgniter 用户指南 版本 2.1.0

编辑文档、查看近期更改请 登录 或 注册  找回密码
查看原文

辅助函数

辅助函数,顾名思义,是帮助我们完成特定任务的函数。每个辅助函数文件仅仅是一些函数的集合。例如,URL Helpers 可以帮助我们创建链接,Form Helpers 可以帮助我们创建表单,Text Helpers 提供一系列的格式化输出方式,Cookie Helpers 能帮助我们设置和读取COOKIE, File Helpers 能帮助我们处理文件,等等。

跟其他部分不同的是,辅助函数不是用类的方式来实现的。它们仅仅是一些简单的过程处理函数。 每个辅助函数处理一个特定的任务,并且不必依靠其他函数。

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

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

载入辅助函数

载入辅助函数是非常简单的:

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

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

例如,要载入文件名为url_helper.phpURL Helper,你将会用到下面的语句:

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

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

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

载入多个辅助函数

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

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

自动载入辅助函数

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

使用辅助函数

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

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

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

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

"扩展" Helpers

你如果想 "扩展"一个原有的 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 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() is included in Array Helper, so it overrides the native function
function random_element($array)
{
    shuffle($array);
    return array_pop($array);
}

设定你自己的前缀(Prefix)

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

$config['subclass_prefix'] = 'MY_';

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

现在可以做什么?

在目录里面有所有辅助函数的列表,你可以打开每个文件看看他们都能做些什么。

不过目前还没有想到更好的方法让我们如何记住这些辅助函数!要不编辑个快速查询手册??如果你有更好的方法请告诉我!

 

翻译贡献者: architectcom, borisauschina, Hex, levin, lishen2, longbill, ripen, sheshi37c, shishirui, tangjianft, Xwoder
最后修改: 2012-03-07 14:10:40
Previous article: Next article: