Laravel 5 - 找不到 Application::shutdown() 函数,有没有其他解决方案?

Mar*_*rco 3 php laravel laravel-5

获取致命错误:

调用 Laravel 5 中未定义的方法 Illuminate\Foundation\Application::shutdown()

代码示例

App::shutdown(
    function () {
        // do somthing 
    }
);
Run Code Online (Sandbox Code Playgroud)

Mar*_*yan 5

在 laravel 5 中使用 Application::shutdown 方法注册“关闭”回调 https://github.com/laravel/framework/commit/62ae860596f17a80954c106ff179288205a74d78

作为替代方案,您可以使用

1) register_shutdown_function php原生函数

2)使用laravel中间件,实现Illuminate\Contracts\Routing\TerminableMiddleware接口

你需要工具

public function terminate($request, $response)
Run Code Online (Sandbox Code Playgroud)

TerminableMiddleware 接口的函数。终止函数将在脚本结束时调用。

例如,laravel 使用Illuminate\Session\Middleware\StartSession类中的TerminableMiddleware接口在脚本的末尾存储会话数据

代码示例表单源

public function terminate($request, $response)
{
    if ($this->sessionConfigured() && ! $this->usingCookieSessions())
    {
        $this->manager->driver()->save();
    }
}
Run Code Online (Sandbox Code Playgroud)