| 状态 | 草稿 |
|---|---|
| Todo | Expand examples, Proof read |
| 官方最后更新时间 | 2008/06/04 01:57 |
辅助函数 是一种灵巧的,方便的函数能给大家的开发带来帮助。
辅助函数有些类似于库的方法,但是却又细微的差别。对于一个类来说,你不得不创建库的实例才可以使用其方法。辅助函数被声明的为类的静态方法,所以不再需要实例化类。你就把他们当作全局函数就可以了。
当他们在框架中使用时作为辅助函数的类可以自动加载,不再需要大家再去加载它们。
举一个简单调用辅助函数的例子:
// 显示 Kohana 安装的基地址 echo url::base();
在 Kohana 中,你可以添加自己的辅助函数和替换或扩展系统存在辅助函数。
如果你想创建自己的辅助函数,请遵循下面的规定:
application/helpers 目录下面(如果在 modules/helpers 目录下面创建模型)。_Core” 后缀)。_Core” 以通常的方法使用 Kohana 内建的辅助函数去集成。例如, 假设您要创建一个辅助函数辅助 JavaScript,则可以创建下面的文件:
文件: application/helpers/javascript.php
<?php defined('SYSPATH') or die('No direct script access.'); class javascript_Core { public static function alert($message) { return "alert('$message');\n"; } } ?>
接着开始使用这个辅助函数:
javascript::alert("Oh no!");
Kohana 允许扩展系统本身自建的辅助函数,所以你可以把扩展他们并用在自己的系统中。但决不能修改 system/helpers 目录下的文件!而且创建一个新的继承自系统自建的辅助函数文件。
你也可以继承于自己的辅助函数,当然还得在类名后面添加 ”_Core”。
如果需要继承一个辅助函数,在上面规定的基础上还有一组规定需要遵守:
MY_” 前缀。这个前缀是可配的,详情请参见 配置(Configuration) 页面。_Core”。例如,假设你想继承 Kohana 的 HTML 辅助函数:
文件: application/helpers/MY_html.php
<?php defined('SYSPATH') or die('No direct script access.'); class html extends html_Core { public static function your_custom_method() { } } ?>
扩展核心类并不但在 Kohana 中允许,而且是预期的(expected)。
替换系统自建的辅助函数也是可以实现的(虽然可能很少这样使用)。在上面规定的基础上,还有一个例外:
_Core” 到类名上是强制性的 - 必须记住这一点!恩,例如,你想替换 url helper:
File: application/helpers/url.php
<?php defined('SYSPATH') or die('No direct script access.'); class url_Core { // 定义你自己的 url 辅助函数。 } ?>