流明缓存\存储不可实例化

LWjuniOr

我是Laravel和Lumen的新手,所以我的问题可能有点简单,但是我找不到任何有用的答案。

流明版本是5.1

因此,我尝试创建一个受缓存支持的数据存储库。首先,我想使用FileStore,然后再转到更合适的位置。

我试图像这样注入缓存存储库:

<?php

    namespace App\Repositories;

    use Illuminate\Cache\Repository;

    class DataRepository
    {
        private $cache;

        public function __construct(Repository $cache)
        {
            $this->cache = $cache;
        }
    }

对我来说,这似乎很简单。但是,当我尝试在控制器中使用此存储库并尝试将其插入到实例中时,出现以下错误:

BindingResolutionException in Container.php line 749:
Target [Illuminate\Contracts\Cache\Store] is not instantiable.

我猜想存储库找不到匹配的和可用的商店实现。当我尝试像这样将存储绑定到\ Illumante \ Cache \ FileStore时:

$this->app->bind(\Illuminate\Contracts\Cache\Store::class, \Illuminate\Cache\FileStore::class);

我收到了一种新的错误:

Unresolvable dependency resolving [Parameter #1 [ <required> $directory ]] in class Illuminate\Cache\FileStore

我想我有一个更复杂的配置问题,所以我不想遍历依赖树。

在我的.env我有这些:

CACHE_DRIVER=fileSESSION_DRIVER=file

在Lumen中,我明确启用了Facades,DotEnv(以及对我的数据存储库的雄辩)。

Dotenv::load(__DIR__.'/../');

$app = new Laravel\Lumen\Application(
    realpath(__DIR__.'/../')
);

$app->withFacades();
$app->withEloquent();

我试图添加一个cache.php配置。在bootstrap / app.php中,我添加$app->configure('cache');了以下配置使用它:

<?php

return [
    'default' => env('CACHE_DRIVER', 'file'),

    'stores' => [
        'file' => [
            'driver' => 'file',
            'path' => storage_path('framework/cache'),
        ],
    ],
];

您能帮我吗,如何正确引导缓存?

克里萨纳法

回答

流明中的缓存实现注册为:

Illuminate\Contracts\Cache\Repository

不是

Illuminate\Cache\Repository

因此,您可以将代码更改为:

<?php

namespace App\Repositories;

use Illuminate\Contracts\Cache\Repository;

class DataRepository
{
    private $cache;

    public function __construct(Repository $cache)
    {
        $this->cache = $cache;
    }
}

PS您不需要配置缓存,因为Lumen会自动配置任何缓存配置。

技巧

但是,如果您仍然想使用Illuminate\Cache\Repository,则可以先将其绑定到您的ServiceProviderbootstrap/app.php文件中:

use Illuminate\Cache\Repository as CacheImplementation;
use Illuminate\Contracts\Cache\Repository as CacheContract;

$app->singleton(CacheImplementation::class, CacheContract::class);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

流明缓存\存储不可实例化

来自分类Dev

Laravel 4:目标接口不可实例化

来自分类Dev

laravel控制器不可实例化

来自分类Dev

用反射实例化不可变对象

来自分类Dev

Laravel 5-接口不可实例化

来自分类Dev

Laravel依赖注入“不可实例化”

来自分类Dev

Softon\Indipay 在构建时不可实例化

来自分类Dev

Laravel:目标在构建时不可实例化

来自分类Dev

目标 [App\Service\InvitationServiceInterface] 不可实例化?

来自分类Dev

流明文件缓存驱动程序

来自分类Dev

流明路由缓存不起作用

来自分类Dev

如何忽略使用Akavache缓存的不可序列化属性?

来自分类Dev

无法实例化 Spring bean 存储库

来自分类Dev

Redis:使用两个实例还是仅使用一个实例(缓存和存储)?

来自分类Dev

不可序列化类中的非瞬态不可序列化实例字段?

来自分类Dev

如何在双向关联中实例化不可变的类?

来自分类Dev

如何使用强制变量强制实例化不可变 pojo?

来自分类Dev

是否存储在Hibernates 2级缓存中的对象是“不可变的”?

来自分类Dev

Webpack外部不可缓存

来自分类Dev

GAE数据存储日期不可JSON序列化

来自分类Dev

GAE数据存储日期不可JSON序列化

来自分类Dev

无法修改流明中的本地化

来自分类Dev

将对象存储在数组中以进行实例化和修改实例化(Java)

来自分类Dev

重用缓存的实例

来自分类Dev

缓存JDK TimeZone实例

来自分类Dev

要在hazelcast中存储在IMap中以进行缓存的数据存储在hazelcast服务器中或运行hazelcast实例的位置?

来自分类Dev

在容器/变量中存储和实例化Scala类

来自分类Dev

Python 2.7:首次访问时线程本地存储的实例化?

来自分类Dev

Flutter Firebase存储实例未初始化

Related 相关文章

热门标签

归档