启动 Laravel 应用程序时执行功能

Execute a function when starting a Laravel application

我想在启动我的 Laravel 应用程序时执行一个功能。
直到现在我都使用 "AppServiceProvider" 的引导功能,但后来我的功能经常被执行。
如何在启动时执行一次函数?

到目前为止,这是我的代码:

class AppServiceProvider extends ServiceProvider
{
    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }

    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        //
        SocialController::init();
    }
}

laravel Service Container 中有一个很棒的功能叫做 Singleton

这个功能你绑定到它的每件事只能工作一次,这意味着你的 例如 class 的一个实例将是相同的

我认为这对像为第三方令牌注册 apiToken 这样的事情很有帮助

所以你只需要 os 就可以写出这样的东西

$this->app->bind(SocialController::class, function ($app) {
    return SocialController::init();
});