title: How does Laravel defer multiple bindings all listed in a single service provider?
body: <p>I want all my repositories to be listed in a single service provider, but I <strong>don't</strong> want them all loaded at once...</p>
  
  <p>Consider the service provider below:</p>
  
  <pre><code>class RepositoryServiceProvider extends ServiceProvider {
  
      protected $defer = true;
  
      public function register()
      {
          $this-&gt;app-&gt;bind(
              'App\Repositories\Contracts\FooRepository',
              'App\Repositories\SQL\FooSQLRepository');
  
          $this-&gt;app-&gt;bind(
              'App\Repositories\Contracts\BarRepository',
              'App\Repositories\SQL\BarSQLRepository');
  
          // and more to be added later...
      }
  
      public function provides()
      {
  
          // Will it defer and load all these at once? Or only the one(s) needed?
          return ['App\Repositories\Contracts\FooRepository',
                  'App\Repositories\Contracts\BarRepository'];
      }
  
  }
  </code></pre>
  
  <p><a href="http://laravel.com/docs/master/providers#deferred-providers" rel="nofollow">According to the Laravel docs</a>, I can defer the registration of bindings until needed. But does this work for when I've added multiple bindings in a single service provider? Specifically I mean, will it defer and then load <strong>all</strong> or load <strong>only the one needed</strong>? </p>