phpwind - php中hook是什么意思
Jun 06, 2016 pm 08:31 PM
在看phpwind源码的时候时常碰到hook
但是搜索了蛮久之后仍然对这个东西一点头绪没有
希望有了解这个的前辈能给一个比较详细的解释或者相关的链接
回复内容:
在看phpwind源码的时候时常碰到hook
但是搜索了蛮久之后仍然对这个东西一点头绪没有
希望有了解这个的前辈能给一个比较详细的解释或者相关的链接
在脚本结束时关闭MySQL数据库连接:
<code><?php function close_db($app, $mysqli) { if (!$app['db_pconnect']) { if (isset($mysqli)) $mysqli->close(); } } register_shutdown_function('close_db', $app, $mysqli); </code>
register_shutdown_function就是一个hook钩子性质的函数,作用是:在特定事件发生时(脚本关闭)触发某些操作(调用close_db函数关闭数据库).
比如你要做一个评论敏感词过滤插件,你就应该在评论输出时(事件),调用你的过滤函数(钩子函数),然后继续输出评论.WordPress中的add_filter/add_action函数就是用来实现钩子的.
PHP实现钩子和插件系统
http://stackoverflow.com/questions/8336308/how-to-do-a-php-hook-system
<code>/** * Attach (or remove) multiple callbacks to an event and trigger those callbacks when that event is called. * 绑定或移除多个回调函数到事件,当事件被调用时触发回调函数. * * @param string $event name * @param mixed $value the optional value to pass to each callback * @param mixed $callback the method or function to call - FALSE to remove all callbacks for event */ function event($event, $value = NULL, $callback = NULL) { static $events; if($callback !== NULL) { if($callback) { $events[$event][] = $callback; // 添加事件 } else { unset($events[$event]); // 移除事件里所有的回调函数 } } else if(isset($events[$event])) { foreach($events[$event] as $function) { $value = call_user_func($function, $value); // 调用事件 } return $value; } } // 添加事件 event('filter_text', NULL, function($text) { return htmlspecialchars($text); }); event('filter_text', NULL, function($text) { return nl2br($text); }); // 移除事件里所有的回调函数 // event('filter_text', NULL, FALSE); // 调用事件 $text = event('filter_text', $_POST['text']); </code>
HOOK就是钩子,也是drupal与wordpress的核心机制。其实相当于事件绑定,你在某个地方挂了钩,你就可以在别的地方注入代码。
这个我遇到的一般是用来表示插件的。

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian

Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP
