首页 » 网站建设 » php魔术办法hooks技巧_Slim框架进修笔记之Hooks

php魔术办法hooks技巧_Slim框架进修笔记之Hooks

duote123 2024-11-18 0

扫一扫用手机浏览

文章目录 [+]

Slim运用程序供应了一组挂钩,您可以在个中注书籍身的回调。

什么是钩子?

php魔术办法hooks技巧_Slim框架进修笔记之Hooks

“挂钩”是Slim运用程序生命周期中的一个时候,在该时候将调用分配给挂钩的可调用优先级列表。
钩子由字符串名称标识。

php魔术办法hooks技巧_Slim框架进修笔记之Hooks
(图片来自网络侵删)

“可赎回”是什么,返回true了is_callable()。
可调用分配给钩子,并在调用钩子时调用。
如果为单个挂钩分配了多个可调用工具,则按指定的顺序调用每个可调用工具。

2.如何利用

利用Slim运用程序的hook()方法将一个callable分配给一个钩子:

<?php

$app = new \Slim\Slim();

$app->hook('the.hook.name', function () {

//Do something

});

第一个参数是钩子名称,第二个参数是可调用的。
每个钩子都保持已注册的callables的优先级列表。
默认情形下,分配给挂钩的每个可调用工具的优先级为10.您可以通过通报整数作为方法的第三个参数来为可调用工具供应不同的优先级hook():

<?php

$app = new \Slim\Slim();

$app->hook('the.hook.name', function () {

//Do something

}, 5);

上面的示例为可调用项分配优先级5。
当调用钩子时,它将按优先级(升序)对分配给它的所有可调用工具进行排序。
优先级为1的可调用工具将在优先级为10的可调用工具之前调用。

钩子不会将参数通报给他们的callables。
如果callable须要访问Slim运用程序,您可以利用use关键字或Slim运用程序的静态getInstance()方法将运用程序注入回调:

<?php

$app = new \Slim\Slim();

$app->hook('the.hook.name', function () use ($app) {

// Do something

});

3.默认

这些是在Slim运用程序中始终调用的默认挂钩。

slim.before

在运行Slim运用程序之前和打开输出缓冲之前调用此挂钩。
在Slim运用程序生命周期中,此挂钩将被调用一次。

slim.before.router

在打开输出缓冲之后和调度路由器之前调用此挂钩。
在Slim运用程序生命周期中,此挂钩将被调用一次。

slim.before.dispatch

在调度当前匹配路由之前调用此挂接。
常日这个钩子在Slim运用程序生命周期中只调用一次; 但是,如果匹配路由选择通报给后续匹配路由,则可以多次调用此挂钩。

slim.after.dispatch

在调度当前匹配路由后调用此挂接。
常日这个钩子在Slim运用程序生命周期中只调用一次; 但是,如果匹配路由选择通报给后续匹配路由,则可以多次调用此挂钩。

slim.after.router

在调度路由器之后,在将相应发送到客户端之前以及关闭输出缓冲之后调用此挂接。
在Slim运用程序生命周期中,此挂钩将被调用一次。

slim.after

关闭输出缓冲后和将相应发送到客户端后调用此挂钩。
在Slim运用程序生命周期中,此挂钩将被调用一次。

4.Custom

可以在Slim运用程序中创建和调用自定义挂钩。
当调用自定义钩子时applyHook(),它将调用分配给该钩子的所有可调用工具。
这正是Slim运用程序的默认挂钩事情办法。
在这个例子中,我运用了一个名为“my.hook.name”的自定义钩子。
之前为此挂钩注册的所有可调用项都将被调用。

<?php

$app = new \Slim\Slim();

$app->applyHook('my.hook.name');

当您运行上面的代码时,先前分配给钩子“my.hook.name”的任何可调用项将按优先级顺序(升序)调用。

您该当在运用挂钩之前将callables注册到挂钩。
可以这样想:当你调用Slim运用程序的applyHook()方法时,你哀求Slim调用已经为该钩子名称注册的所有callables。

标签:

相关文章

php为无色透明技巧_水货钻石其实也还行

从各种钻石中,可以看到大大小小的“包裹体” 图片来源:参考文献包裹体的种类多样。比钻石形成更早的包裹体,叫“原生包裹体”;与钻石同...

网站建设 2024-12-19 阅读1 评论0

phpstudy发送gbk技巧_php的文件上传

这里首先声明一下这一章的内容比较多,比较难,你要抱着和自己去世磕的态度。细微之处不放过,多敲多练是王道。 学习就像爬山,得一步一步...

网站建设 2024-12-19 阅读1 评论0