在 Laravel 5 中将缓存作为依赖项注入
Injecting cache as a dependency in Laravel 5
我不想使用 Cache facade,而是使用构造函数将其注入到我的控制器中,如下所示:
use Illuminate\Contracts\Cache\Store;
...
protected $cache;
public function __construct(Store $cache)
{
$this->cache = $cache;
}
然后我在 AppServiceProvider.php 中使用应用程序绑定。
public function register()
{
$this->app->bind(
'Illuminate\Contracts\Cache\Store',
'Illuminate\Cache\FileStore'
);
}
但是,我收到以下错误,因为 FileStore.php 在构造函数中需要 $files 和 $directory 参数。
第 872 行 Container.php 中的 BindingResolutionException:
class Illuminate\Cache\FileStore
中无法解析的依赖项解析 [Parameter #1 [ $directory ]]
知道如何解决这个问题吗?
如果你想使用 Cache
门面的等价物,你应该注入 Illuminate\Cache\Repository
:
use Illuminate\Cache\Repository as CacheRepository;
// ...
protected $cache;
public function __construct(CacheRepository $cache)
{
$this->cache = $cache;
}
您可以在文档中查找底层 类 外观:
我不想使用 Cache facade,而是使用构造函数将其注入到我的控制器中,如下所示:
use Illuminate\Contracts\Cache\Store;
...
protected $cache;
public function __construct(Store $cache)
{
$this->cache = $cache;
}
然后我在 AppServiceProvider.php 中使用应用程序绑定。
public function register()
{
$this->app->bind(
'Illuminate\Contracts\Cache\Store',
'Illuminate\Cache\FileStore'
);
}
但是,我收到以下错误,因为 FileStore.php 在构造函数中需要 $files 和 $directory 参数。
第 872 行 Container.php 中的 BindingResolutionException: class Illuminate\Cache\FileStore
中无法解析的依赖项解析 [Parameter #1 [ $directory ]]知道如何解决这个问题吗?
如果你想使用 Cache
门面的等价物,你应该注入 Illuminate\Cache\Repository
:
use Illuminate\Cache\Repository as CacheRepository;
// ...
protected $cache;
public function __construct(CacheRepository $cache)
{
$this->cache = $cache;
}
您可以在文档中查找底层 类 外观: