Laravel でキャッシュを使用する方法について混乱しています。Cache ファサードを使用して、次のようなことを行うことができます。</p>
use Cache;
public function someMethod()
{
Cache::remember('users', 60 , function() {
return DB::table('users')->get();
});
}
または、このようなものを使用できます...</p>
use Illuminate\Contracts\Cache\Repository;
protected $cache;
public function __construct(Repository $repository)
{
$this->cache = $repository;
}
public function someMethod()
{
$this->cache->remember('users', 60 , function() {
return DB::table('users')->get();
});
}
どちらも、2 番目のメソッドに含めた同じメソッドvendor/laravel/framework/src/Illuminate/Cache/Repository.php
を実装する Repository クラスから覚えてい ます。vendor/laravel/framework/src/Illuminate/Contracts/Cache/Repository.php
Laravel docsに従って:
コントラクトは、Laravel のキャッシュ サービスへの
Illuminate\Contracts\Cache\Factory and Illuminate\Contracts\Cache\Repository
アクセスを提供します。Factory コントラクトは、アプリケーション用に定義されたすべてのキャッシュ ドライバーへのアクセスを提供します。通常、リポジトリ コントラクトは、キャッシュ構成ファイルで指定された、アプリケーションの既定のキャッシュ ドライバーの実装です。ただし、このドキュメント全体で使用する Cache ファサードを使用することもできます。Cache ファサードは、Laravel キャッシュ コントラクトの基盤となる実装への便利で簡潔なアクセスを提供します。
したがって、両方のアプローチが同じであると結論付けることができます。Cache Facade はよりクリーンな実装を提供してくれます。それだけです。