Laravel6.x以降のWorkCommandコンストラクタで第二引数に設定するキャッシュの場所が分からない


Laravelの6.x以降で Illuminate\Queue\Console\WorkCommand のコンストラクタで第二引数が増えていました。

6.xより前

[code]

    /**
     * Create a new queue work command.
     *
     * @param  \Illuminate\Queue\Worker  $worker
     * @return void
     */
    public function __construct(Worker $worker)
    {
        parent::__construct();
    
        $this->worker = $worker;
    }
    
[/code]

6.x以降

[code]

    /**
     * Create a new queue work command.
     *
     * @param  \Illuminate\Queue\Worker  $worker
     * @param  \Illuminate\Contracts\Cache\Repository  $cache
     * @return void
     */
    public function __construct(Worker $worker, Cache $cache)
    {
        parent::__construct();
    
        $this->cache = $cache;
    
        $this->worker = $worker;
    }
    
[/code]

6.xより前のソースを見ると、以前は内部でキャッシュを指定していたようで、これを外部から設定するようになったようです。

[code]

    protected function runWorker($connection, $queue)
    {
        $this->worker->setCache($this->laravel['cache']->driver());
    
        return $this->worker->{$this->option('once') ? 'runNextJob' : 'daemon'}(
            $connection, $queue, $this->gatherWorkerOptions()
        );
    }
    
[/code]

このキャッシュをコンストラクタの第二引数として設定したいのですが、どこから該当するキャッシュを取得できるでしょうか？




`app('cache.store')` で取得できるのではないかと思います。

`Illuminate\Foundation\Providers\ArtisanServiceProvider` クラスの
`registerQueueWorkCommand` メソッドでは、以下のように指定されているためです。

[code]

    use Illuminate\Queue\Console\WorkCommand as QueueWorkCommand;
    
        // 中略
    
        $this->app->singleton('command.queue.work', function ($app) {
            return new QueueWorkCommand($app['queue.worker'], $app['cache.store']);
        });
    
[/code]

