Laravel延时加载服务提供者

laravel服务提供者是建立在服务容器之上,实现了高内聚,低耦合的功能模块,register函数负责将实现类绑定到服务容器中,boot函数会在所有的服务提供者加载完之后执行;

laravel在启动框架阶段,会读取配置config/app.php中的providers的所有的服务提供者,在所有服务提供者的 register 函数调用完成之后,再依次调用各个服务提供者的 boot 函数,完成服务提供者的注册和启动。所以不要尝试在 register 方法中注册任何监听器,路由,或者其他任何功能。否则,你可能会意外地使用到尚未加载的服务提供者提供的服务。

如何创建服务提供者
php artiasn make:provider CurlServiceProvider
延时服务提供者

1.只需要在我们服务提供中添加

protected $defer = true;

  /**
   * 中间不变的地方暂时省略
   *
   */

  public function provides()
  {
    return ['curl'];
  }

2.执行 php artisan clear-compiled ,会重新生成框架缓存文件,在 bootstrap/cache/services.php 中保存系统服务提供者的所有信息,其中 deferred 保存的是所有需要延迟加载的服务提供者。

laravel原文链接:https://learnku.com/articles/27678

你可能感兴趣的:(Laravel延时加载服务提供者)