在哪里放置代码来执行每个Laravel请求


Where to put a code to execute on every Laravel request?

我正在使用Laravel框架构建一个PHP应用程序。我需要在每个请求上读取一些会话值,并在我的控制器方法上使用这些值。

我怎样才能做到这一点?把代码放在哪里?

我想要一些类似于Zend Framework Bootstrap类的东西

最佳实践是使用Laravel请求生命周期(https://laravel.com/docs/8.x/lifecycle)

按照文档,放置&;onload &;的最佳位置或全局代码,在appServiceProvider的引导方法上。例如,如果我不想为我的所有项目设置一个特定的时区:

//app/Providers/AppServiceProvider.php
/**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        date_default_timezone_set('America/Argentina/Jujuy');
    }

因此,您可以创建一个名为BaseController.php的文件,例如,它扩展了Controller。然后把你的逻辑放到__construct()

然后,你所有的其他控制器可以扩展BaseController和在他们的__construct()他们可以执行parent::__construct();使火。