【问题标题】:EventServiceProvider laravel 5事件服务提供者 laravel 5
【发布时间】:2015-03-25 15:48:39
【问题描述】:

我正在挖掘 laravel 5 的代码以更好地理解它。我从索引页面开始,目前我被困在注册部分。

use Illuminate\Support\ServiceProvider;
class EventServiceProvider extends ServiceProvider {
/**
* Register the service provider.
*
* @return void
*/

    public function register()
    {
      $this->app->singleton('events', function($app)
      {
          return (new Dispatcher($app))->setQueueResolver(function() use ($app)
          {
            **return $app->make('Illuminate\Contracts\Queue\Queue');**
          });
        });
      }
    }

我不明白“$app->make('Illuminate\Contracts\Queue\Queue');”部分。 “Illuminate\Contracts\Queue\Queue”是接口而不是类。它应该为此过程抛出错误消息。但是我没有看到任何错误消息。我假设此时没有调用它?

如果您能解释这里发生的事情,我们将不胜感激。

提前致谢。

【问题讨论】:

    标签: events laravel


    【解决方案1】:

    我花了几分钟研究课程并得出以下结论:

    请查看https://github.com/illuminate/queue laravel/framework 存储库子树拆分。

    接口Illuminate\Contracts\Queue\Queue默认由所有可用的队列类型实现:

    • BeanstalkdQueue
    • RedisQueue
    • SqsQueue
    • NullQueue
    • SyncQueue
    • DatabaseQueue
    • IronQueue

    调用$app->make('Illuminate\Contracts\Queue\Queue') 时,Laravel IoC 容器应该解决其中一个问题,所以我认为在执行这行代码时应用程序不会失败。

    很遗憾,我找不到为 IoC 容器设置特定队列实现的位置,我会在找到后立即更新我的答案。

    【讨论】:

      猜你喜欢
      • 2015-06-18
      • 1970-01-01
      • 1970-01-01
      • 2015-09-12
      • 1970-01-01
      • 2020-01-31
      • 2016-12-21
      • 2015-10-24
      • 2016-10-06
      相关资源
      最近更新 更多