WedX - журнал о программировании и компьютерных науках

Добавить собственный драйвер кеша в автономный экземпляр кеша Laravel

Используя компонент кеша Laravel ( Illuminate/Cache ) в качестве бэкенда для кэширования моего приложения, как я могу зарегистрировать новый пользовательский драйвер кэша? Так как я вообще не использую Laravel (только Illuminate/Cache), я не могу добавить его в сервис-провайдер и возвращается фасад Cache и ошибка.

Обратите внимание, что я успешно использую драйверы по умолчанию (file, memcached, redis), передавая конфигурацию и тому подобное внутри пустого Illuminate\Container\Container с помощью функции singleton:

EDIT. Пример кода, как получить хранилище кеша:

$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);
03.03.2017

  • Можете ли вы показать код, если вы передаете конфигурацию и тому подобное внутри пустого Illuminate\Container\Container? :) 03.03.2017
  • Вопрос отредактирован 03.03.2017
  • laravel.com/docs/5.4/cache#adding-custom-cache- драйверы . Просто замените фасад Cache своим экземпляром CacheManager, например. $cacheManager->extend(...) 03.03.2017
  • Я все еще получаю ошибку InvalidArgumentException: Driver [fooDriver] is not supported. 03.03.2017
  • Оказывается, у меня была опечатка в имени моего водителя. Ваше решение работает, спасибо! Вы можете опубликовать его как ответ, если хотите, и я отмечу его как принятый. 03.03.2017

Ответы:


1

Во-первых, вам нужно убедиться, что ваш драйвер расширяет интерфейс 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

Надеюсь это поможет!

03.03.2017
Новые материалы

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

Учебные заметки: создание моего первого пакета Node.js
Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..

ИИ в аэрокосмической отрасли
Каждый полет – это шаг вперед к великой мечте. Чтобы это происходило в их собственном темпе, необходима команда астронавтов для погони за космосом и команда технического обслуживания..


Для любых предложений по сайту: wedx@cp9.ru