Laravel ( Illuminate/Cache
)のキャッシュ コンポーネントをアプリのキャッシュ バックエンドとして使用して、新しいカスタム キャッシュ ドライバーを登録するにはどうすればよいですか? 私は Laravel をまったく使用していないため (のみIlluminate/Cache
)、サービス プロバイダーに追加できず、Cache
ファサードが返され、エラーが発生します。
関数Illuminate\Container\Container
を使用して空の内部に構成などを渡すことで、デフォルトのドライバー (file、memcached、redis) を正常に使用していることに注意してくださいsingleton
。
編集 - キャッシュ ストアを取得する方法のサンプル コード:
$app = new Illuminate\Container\Container();
// Where $config is an array of config values
$app->singleton('config', function() use ($config) {
return $config;
});
$app->singleton('files', function() {
return new Illuminate\Filesystem\Filesystem();
});
$cacheManager = new CacheManager($app);
// Where $storeName is linked to the configs values
return $cacheManager->store($storeName);
まず、ドライバーがIlluminate\Contracts\Cache\Store
インターフェースを拡張していることを確認する必要があります。
次に、次のようなことができるはずです。
$cacheManager->extend('you-custom-driver-name', function ($app) use($cacheManager) {
return $cacheManager->repository(new YourCustomDriver);
});
https://laravel.com/docs/5.4/cache#adding-custom-cache-drivers
お役に立てれば!
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加