| 状态 | 草稿 |
|---|---|
| Todo | More examples, proof read |
| 官方最后更新时间 | 2009/02/06 05:06 |
钩子(Hooks)同样是在 Kohana 初期加载的基文件,更具体说 它们是在 Kohana::setup() 方法中加载。所以它们的方法可以用在下面的文件中:
如果没有事件启动,那么第一个启动的是 system.ready 。
钩子文件应该放在 application/hooks 目录下面或者相似的模型目录下面。
打开 application/config directory 目录下的 config.php 编辑钩子,例如:
文件: config.php
$config['enable_hooks'] = FALSE;
设置 $config['enable_hooks'] 为 TRUE ,所有在钩子目录(application/hooks)的文件都会被包含并等待执行。
实例 config.php
// 加载 application/hooks 目录的所有文件 $config['enable_hooks'] = TRUE;
钩子的强大主要来自于 事件(Events) 类。钩子在任何的事件开始之前被加载,这就意味着你可以使用钩子去修改事件的回调。比如加载下面的文件作为一个钩子。
实例 hooks/power.php
class Power { public function Kohana(){ Event::$data = Event::$data.'<!-- Powered by Kohana-->'; } } Event::add('system.display', array('Power', 'Kohana'));
这个将会添加一个回调到 system.display 事件之中。回调是到方法 Power::Kohana。Power::Kohana 会在每个页面添加一个小的提示(<!– Powered by Kohana–>)。它利用可了 Event::$data 方法来控制最终的输出。详情请参阅 Events。
当你使用钩子的时候或许你会需要下面 Kohana 系统的钩子。钩子的这些常量会在 index.php 文件中被加载: