/
var
/
www
/
html
/
app
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Cache
/
Upload File
HOME
<?php namespace Illuminate\Cache; use Aws\DynamoDb\DynamoDbClient; use Illuminate\Contracts\Support\DeferrableProvider; use Illuminate\Support\Arr; 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('cache.dynamodb.client', function ($app) { $config = $app['config']->get('cache.stores.dynamodb'); $dynamoConfig = [ 'region' => $config['region'], 'version' => 'latest', 'endpoint' => $config['endpoint'] ?? null, ]; if ($config['key'] && $config['secret']) { $dynamoConfig['credentials'] = Arr::only( $config, ['key', 'secret', 'token'] ); } return new DynamoDbClient($dynamoConfig); }); $this->app->singleton(RateLimiter::class); } /** * Get the services provided by the provider. * * @return array */ public function provides() { return [ 'cache', 'cache.store', 'cache.psr6', 'memcached.connector', 'cache.dynamodb.client', RateLimiter::class, ]; } }