-
Notifications
You must be signed in to change notification settings - Fork 175
Hook(中文)
Yi Xian edited this page Dec 1, 2016
·
1 revision
hook实现与接口实现完全一致, 不同的是hook要放在api目录下的hooks中, 同时在配置文件中指定phprs\Router的hooks
hook会在api被调用前, 按配置的顺序执行, 只有匹配路由规则的hook会被执行.
hook中即可以修改请求, 也可以修改响应.
如果要中途结束hook的执行链路(不再执行后续hook和api), 可以指定
@return({"break", 1})
或者
@return({"break", $is_break})
-
示例
/** * @path("/hw") */ class HookApiName { /** * uri中提取app名,并把app从uri中去掉 * @route({"GET","/"}) * @param({"app", "$.app_name"}) * @param({"ori_path", "$.path"}) * @param({"dest_path", "$._SERVER.REQUEST_URI"}) */ function fetchAppName($ori_path, &$dest_path, &$app){ $app = $ori_path[0]; array_shift($ori_path); $dest_path = '/hw/'.implode('/', $ori_path); } }