- 欢迎使用 CodeIgniter
- 安装说明
- 下载 CodeIgniter
- 从老版本升级
- 疑难解答
- CodeIgniter 概览
- CodeIgniter 将从这里开始
- CodeIgniter 概览
- CodeIgniter 特性
- 应用程序流程图
- 模型-视图-控制器
- 设计与架构目标
- 教程 - 内容提要
- 加载静态内容
- 读取新闻条目
- 创建新闻条目
- 结束语
- 向 CodeIgniter 贡献你的力量
- 编写 CodeIgniter 的文档
- Developer's Certificate of Origin 1.1
- CodeIgniter URL
- 控制器
- 保留名称
- 视图
- 模型
- 辅助函数
- 使用 CodeIgniter 类库
- 创建类库
- 使用 CodeIgniter 驱动器
- 创建驱动器
- 创建核心系统类
- 创建附属类
- 钩子 - 扩展框架核心
- 自动加载资源
- 公共函数
- 兼容性函数
- URI 路由
- 错误处理
- 网页缓存
- 程序分析
- 以 CLI 方式运行
- 管理你的应用程序
- 处理多环境
- 在视图文件中使用 PHP 替代语法
- 安全
- PHP 开发规范
- 基准测试类
- 缓存驱动器
- 日历类
- 购物车类
- 配置类
- Email 类
- 加密类
- 加密类(新版)
- 文件上传类
- 表单验证类
- FTP 类
- 图像处理类
- 输入类
- Javascript 类
- 语言类
- 加载器类
- 迁移类
- 输出类
- 分页类
- 模板解析类
- 安全类
- Session 类
- HTML 表格类
- 引用通告类
- 排版类
- 单元测试类
- URI 类
- 用户代理类
- XML-RPC 与 XML-RPC 服务器类
- Zip 编码类
- 数据库参考
- 数据库快速入门: 示例代码
- 数据库配置
- 连接你的数据库
- 查询
- 生成查询结果
- 查询辅助函数
- 查询构造器类
- 事务
- 数据库元数据
- 自定义函数调用
- 数据库缓存类
- 数据库工厂类
- 数据库工具类
- 数据库驱动器参考
- 数组辅助函数
- 验证码辅助函数
- Cookie 辅助函数
- 日期辅助函数
- 目录辅助函数
- 下载辅助函数
- 邮件辅助函数
- 文件辅助函数
- 表单辅助函数
- HTML 辅助函数
- Inflector 辅助函数
- 语言辅助函数
- 数字辅助函数
- 路径辅助函数
- 安全辅助函数
- 表情辅助函数
- 字符串辅助函数
- 文本辅助函数
- 排版辅助函数
- URL 辅助函数
- XML 辅助函数
- The MIT License (MIT)
- 服务器要求
- 关于 CodeIgniter
辅助函数
辅助函数,顾名思义,是帮助我们完成特定任务的函数。每个辅助函数文件都是某一类 函数的集合。例如, URL 辅助函数 帮助我们创建链接,表单辅助函数**帮助 我们创建表单元素,**本文辅助函数 帮助我们处理文本的格式化,Cookie 辅助函数 帮助我们读取或设置 Cookie ,文件辅助函数 帮助我们处理文件,等等等等。
不同于 CodeIgniter 中的大多数系统,辅助函数没有使用面向对象的方式来实现的。 它们是简单的过程式函数,每个函数处理一个特定的任务,不依赖于其他的函数。
CodeIgniter 默认不会自己加载辅助函数,所以使用辅助函数的第一步就是加载它。 一旦加载了,它就可以在你的 控制器 和 视图 中全局访问了。
一般情况下,辅助函数位于 system/helpers 或者 application/helpers 目录 目录下。CodeIgniter 首先会查找 application/helpers 目录,如果该目录不存在, 或者你加载的辅助函数没有在该目录下找到,CodeIgniter 就会去 system/helpers/ 目录查找。
加载辅助函数
可以使用下面的方法简单的加载辅助函数:
$this->load->helper('name');
name 参数为辅助函数的文件名,去掉 .php 文件后缀以及 _helper 部分。
例如,要加载 URL 辅助函数 ,它的文件名为 url_helper.php ,你可以这样加载它:
$this->load->helper('url');
辅助函数可以在你的控制器方法的任何地方加载(甚至可以在你的视图文件中加载,尽管这不是 个好的实践),只要确保在使用之前加载它就可以了。你可以在你的控制器的构造函数中加载它, 这样就可以在该控制器的任何方法中使用它,你也可以在某个需要它的函数中单独加载它。
注解
上面的加载辅助函数的方法没有返回值,所以不要将它赋值给变量,直接调用就好了。
加载多个辅助函数
如果你需要加载多个辅助函数,你可以使用一个数组,像下面这样:
$this->load->helper( array('helper1', 'helper2', 'helper3') );
自动加载辅助函数
如果你需要在你的整个应用程序中使用某个辅助函数,你可以将其设置为在 CodeIgniter 初始化时 自动加载它。打开 application/config/autoload.php 文件然后将你想加载的辅助函数添加到 autoload 数组中。
使用辅助函数
一旦你想要使用的辅助函数被加载,你就可以像使用标准的 PHP 函数一样使用它们。
例如,要在你的视图文件中使用 anchor() 函数创建一个链接,你可以这样做:
<?php echo anchor('blog/comments', 'Click Here');?>
其中,"Click Here" 是链接的名称,"blog/comments" 是你希望链接到 controller/method 的 URI 。
扩展辅助函数
为了扩展辅助函数,你需要在 application/helpers/ 目录下新建一个文件, 文件名和已存在的辅助函数文件名一样,但是要加上 MY_ 前缀(这个可以配置, 见下文)。
如果你只是想往现有类中添加一些功能,例如增加一两个方法,或者修改辅助函数中的 某个函数,这时替换整个类感觉就有点杀鸡用牛刀了。在这种情况下,最好的方法是 扩展类。
注解
“扩展”一词在这里可能不是很恰当,因为辅助函数函数都是过程式的独立函数, 在传统编程中并不能被扩展。不过在 CodeIgniter 中,你可以向辅助函数中添加函数, 或者使用你自己的函数替代辅助函数中的函数。
例如,要扩展原始的 数组辅助函数 ,首先你要创建一个文件 application/helpers/MY_array_helper.php , 然后像下面这样添加或重写函数:
// 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); }
设置自定义前缀
用于扩展辅助函数的文件名前缀和扩展类库和核心类是一样的。要自定义这个前缀,你可以打开 application/config/config.php 文件然后找到这项:
$config['subclass_prefix'] = 'MY_';
请注意所有原始的 CodeIgniter 类库都以 CI_ 开头,所以请不要使用这个 作为你的自定义前缀。
然后?
在目录里你可以找到所有的辅助函数清单,你可以浏览下它们看看它们都是做什么的。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论