hook类的add方法增加first参数 支持把某个行为放到钩子的开头首先执行

This commit is contained in:
thinkphp
2015-12-28 12:22:38 +08:00
parent de04d32551
commit 7d025ba2cb
2 changed files with 5 additions and 2 deletions

View File

@@ -20,15 +20,18 @@ class Hook
* 动态添加行为扩展到某个标签
* @param string $tag 标签名称
* @param mixed $behavior 行为名称
* @param bool $first 是否放到开头执行
* @return void
*/
public static function add($tag, $behavior)
public static function add($tag, $behavior,$first=false)
{
if (!isset(self::$tags[$tag])) {
self::$tags[$tag] = [];
}
if (is_array($behavior)) {
self::$tags[$tag] = array_merge(self::$tags[$tag], $behavior);
} elseif($first){
array_unshift(self::$tags[$tag],$behavior);
} else {
self::$tags[$tag][] = $behavior;
}