这是Laravel(v8,但它不重要)关于Redis Facade的源代码链接https://github.com/laravel/framework/blob/8.x/src/Illuminate/Support/Facades/Facade.php#L164我想找到由facade本身提供服务的“混凝土”Redis类。我该怎么办?Laravel框架在哪里将这个facade绑定到一个“真实的的”类?
q3qa4bjr1#
Laravel中Facade的具体实现是从服务容器提供的。对于Redis,您可以在vendor/laravel/framework/src/Illuminate/Redis/RedisServiceProvider.php中找到在Laravel 9.3中,你可以看到这样的东西
Redis
vendor/laravel/framework/src/Illuminate/Redis/RedisServiceProvider.php
public function register() { $this->app->singleton('redis', function ($app) { $config = $app->make('config')->get('database.redis', []); return new RedisManager($app, Arr::pull($config, 'client', 'phpredis'), $config); }); $this->app->bind('redis.connection', function ($app) { return $app['redis']->connection(); }); }
RedisManager是Redis的具体实现。无论何时调用Redis上的方法,都只调用RedisManager上的方法。
RedisManager
1条答案
按热度按时间q3qa4bjr1#
Laravel中Facade的具体实现是从服务容器提供的。
对于
Redis
,您可以在vendor/laravel/framework/src/Illuminate/Redis/RedisServiceProvider.php
中找到在Laravel 9.3中,你可以看到这样的东西
RedisManager
是Redis
的具体实现。无论何时调用Redis
上的方法,都只调用RedisManager
上的方法。