12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- <?php
- namespace Illuminate\Cache;
- use Illuminate\Contracts\Support\DeferrableProvider;
- use Illuminate\Support\ServiceProvider;
- use Symfony\Component\Cache\Adapter\Psr16Adapter;
- class CacheServiceProvider extends ServiceProvider implements DeferrableProvider
- {
- /**
- * Register the service provider.
- *
- * @return void
- */
- public function register()
- {
- $this->app->singleton('cache', function ($app) {
- return new CacheManager($app);
- });
- $this->app->singleton('cache.store', function ($app) {
- return $app['cache']->driver();
- });
- $this->app->singleton('cache.psr6', function ($app) {
- return new Psr16Adapter($app['cache.store']);
- });
- $this->app->singleton('memcached.connector', function () {
- return new MemcachedConnector;
- });
- $this->app->singleton(RateLimiter::class, function ($app) {
- return new RateLimiter($app->make('cache')->driver(
- $app['config']->get('cache.limiter')
- ));
- });
- }
- /**
- * Get the services provided by the provider.
- *
- * @return array
- */
- public function provides()
- {
- return [
- 'cache', 'cache.store', 'cache.psr6', 'memcached.connector', RateLimiter::class,
- ];
- }
- }
|