致命致命错误:
在laravel 5中调用未定义的方法Illuminate \ Foundation \ Application :: shutdown()
代码示例
App::shutdown(
function () {
// do somthing
}
);
答案 0 :(得分:4)
注册"关闭"在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)
TerminableMiddleware接口的功能。 将在脚本结束时调用terminate函数。
例如,laravel在 Illuminate \ Session \ Middleware \ StartSession 类中使用 TerminableMiddleware 接口,以在脚本末尾存储会话数据
代码示例表单源
public function terminate($request, $response)
{
if ($this->sessionConfigured() && ! $this->usingCookieSessions())
{
$this->manager->driver()->save();
}
}
答案 1 :(得分:0)
Laravel 5仍然是测试版软件,因此当事情破裂时不要感到惊讶。您可能会收到该错误,因为
Application::shutdown(function(){});
即使在Laravel 4中,也是为关闭设置事件处理程序的有效方法,它是不在Laravel 5中设置关闭事件监听器的有效方法。
这可能是因为Laravel 5正朝着annotated event system发展,或者可能是因为Laravel 5中的临时发展故障。