状态 草稿
Todo Expand examples, Proof read
官方最后更新时间 2008/06/04 01:57

辅助函数(Helpers)

辅助函数 是一种灵巧的,方便的函数能给大家的开发带来帮助。

辅助函数有些类似于库的方法,但是却又细微的差别。对于一个类来说,你不得不创建库的实例才可以使用其方法。辅助函数被声明的为类的静态方法,所以不再需要实例化类。你就把他们当作全局函数就可以了。

当他们在框架中使用时作为辅助函数的类可以自动加载,不再需要大家再去加载它们。

举一个简单调用辅助函数的例子:

// 显示 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 辅助函数。
 
}
 
?>
general/helpers.txt · 最后更改: 2008/11/05 18:02 由 icyleaf