public function boot() { /** * Extend闭包需要返回一个ConnectorInterface的Concrete * QueueManager内部调用ConnectorInterface::connect($config)得到Queue实例。 * 一般为了简化类的数目,Queue同时也实现了ConnectorInterface * 在ServiceProvider中不再需要显式地配置连接。 */ \Queue::extend('aliyun-mqs', function () { return new MQSQueue(); }); }
/** * Bootstrap the application services. * * @return void */ public function boot() { Cache::extend('redis', function ($app, $config) { $store = new RedisStore($app['redis'], Arr::get($config, 'prefix') ?: $this->app['config']['cache.prefix'], Arr::get($config, 'connection', 'default')); $store->setDefaultUnit(Arr::get($config, 'defaultUnit', 'minute'))->setEncodeFunc(Arr::get($config, 'encodeFunc', 'serialize'))->setDecodeFunc(Arr::get($config, 'decodeFunc', 'unserialize')); $repository = new Repository($store); return $repository; }); \Queue::extend('redis', function () { return new RedisConnector(app('redis')); }); }