| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- <?php
- /**
- *
- * @author: xaboy<365615158@qq.com>
- * @day: 2017/11/24
- */
- namespace service;
- use think\Exception;
- use think\Hook;
- use think\Loader;
- class HookService
- {
- /**
- * 监听有返回结果的行为
- * @param $tag
- * @param $params
- * @param null $extra
- * @param bool $once
- * @return mixed
- */
- public static function resultListen($tag, $params, $extra = null, $once = false,$behavior = null)
- {
- self::beforeListen($tag,$params,$extra,false,$behavior);
- return self::listen($tag,$params,$extra,$once,$behavior);
- }
- /**
- * 监听后置行为
- * @param $tag
- * @param $params
- * @param null $extra
- */
- public static function afterListen($tag, $params, $extra = null, $once = false, $behavior = null)
- {
- try{
- return self::listen($tag.'_after',$params,$extra,$once,$behavior);
- }catch (\Exception $e){}
- }
- public static function beforeListen($tag,$params,$extra = null, $once = false, $behavior = null)
- {
- try{
- return self::listen($tag.'_before',$params,$extra,$once,$behavior);
- }catch (\Exception $e){}
- }
- /**
- * 监听行为
- * @param $tag
- * @param $params
- * @param null $extra
- * @param bool $once
- * @return mixed
- */
- public static function listen($tag, $params, $extra = null, $once = false, $behavior = null)
- {
- if($behavior && method_exists($behavior,Loader::parseName($tag,1,false))) self::add($tag,$behavior);
- return Hook::listen($tag,$params,$extra,$once);
- }
- /**
- * 添加前置行为
- * @param $tag
- * @param $behavior
- * @param bool $first
- */
- public static function addBefore($tag, $behavior, $first = false)
- {
- self::add($tag.'_before',$behavior,$first);
- }
- /**
- * 添加后置行为
- * @param $tag
- * @param $behavior
- * @param bool $first
- */
- public static function addAfter($tag, $behavior, $first = false)
- {
- self::add($tag.'_after',$behavior,$first);
- }
- /**
- * 添加行为
- * @param $tag
- * @param $behavior
- * @param bool $first
- */
- public static function add($tag, $behavior, $first = false)
- {
- Hook::add($tag,$behavior,$first);
- }
- }
|