在 /public/index.php
文件结尾有一行:
$kernel->terminate($request, $response);
可以锁定到 App\Http\Kernel::class
的父类 Illuminate\Foundation\Http\Kernel
里面有一个方法:
public function terminate($request, $response)
{
$this->terminateMiddleware($request, $response);
$this->app->terminate();
}
protected function terminateMiddleware($request, $response)
{
$middlewares = $this->app->shouldSkipMiddleware() ? [] : array_merge(
$this->gatherRouteMiddleware($request),
$this->middleware
);
foreach ($middlewares as $middleware) {
if (! is_string($middleware)) {
continue;
}
list($name) = $this->parseMiddleware($middleware);
$instance = $this->app->make($name);
if (method_exists($instance, 'terminate')) {
$instance->terminate($request, $response);
}
}
}
从 method_exists($instance, 'terminate')
这行可以看出如果想要使用 terminate
只需要在 middleware
中定义一个 terminate
方法就可以了,从 public/index.php
文件结尾的 $kernel->terminate($request, $response);
可以看出它的执行周期是在 Laravel 的相应结果返回之后,也就是整个请求周期快要结束的时候,那么这个时候可以干嘛?
- 记录API的响应结果
- 更多看你需求咯
在 /public/index.php
文件结尾有一行:
$kernel->terminate($request, $response);
可以锁定到 App\Http\Kernel::class
的父类 Illuminate\Foundation\Http\Kernel
里面有一个方法:
public function terminate($request, $response)
{
$this->terminateMiddleware($request, $response);
$this->app->terminate();
}
protected function terminateMiddleware($request, $response)
{
$middlewares = $this->app->shouldSkipMiddleware() ? [] : array_merge(
$this->gatherRouteMiddleware($request),
$this->middleware
);
foreach ($middlewares as $middleware) {
if (! is_string($middleware)) {
continue;
}
list($name) = $this->parseMiddleware($middleware);
$instance = $this->app->make($name);
if (method_exists($instance, 'terminate')) {
$instance->terminate($request, $response);
}
}
}
从 method_exists($instance, 'terminate')
这行可以看出如果想要使用 terminate
只需要在 middleware
中定义一个 terminate
方法就可以了,从 public/index.php
文件结尾的 $kernel->terminate($request, $response);
可以看出它的执行周期是在 Laravel 的相应结果返回之后,也就是整个请求周期快要结束的时候,那么这个时候可以干嘛?
- 记录API的响应结果
- 更多看你需求咯
在
/public/index.php
文件结尾有一行:可以锁定到
App\Http\Kernel::class
的父类Illuminate\Foundation\Http\Kernel
里面有一个方法:从
method_exists($instance, 'terminate')
这行可以看出如果想要使用terminate
只需要在middleware
中定义一个terminate
方法就可以了,从public/index.php
文件结尾的$kernel->terminate($request, $response);
可以看出它的执行周期是在 Laravel 的相应结果返回之后,也就是整个请求周期快要结束的时候,那么这个时候可以干嘛?