Laravel + Wincache на MS Azure: не хранить значения

Я запускаю PHP-приложение на Azure и испытываю странное поведение: этот фрагмент кода запускается командой консоли:

public function fire(Illuminate\Contracts\Cache\Repository $cache) {
$cache->forever('someKey', 'someValue');

var_dump($cache->get('someKey'));
}

Выход:

NULL

Доступ к значению через wincache_ucache_get после выполнения команды также возвращает NULL (с ​​префиксом и без). Кто-нибудь имеет ключ к этому?


P.S .: Согласно phpinfo (), пользовательский кэш wincache включен: wincache.ucenabled On


После некоторой отладки я знаю еще несколько фактов:

В изолированном файле PHP wincache_ucache_set а также wincache_ucache_get работать отлично.

Тем не менее, призыв к wincache_ucache_set в Illuminate\Cache\WinCacheStore возвращается false,

2

Решение

Как есть настройка wincache.enablecli во время выполнения PHP, чтобы контролировать wincache включен в режиме CLI.

По умолчанию установлено 0, чтобы функция wincache_ucache_set() не может работать в ремесленных командах.

Вы можете обратиться к руководству на официальном Azure о Изменение настроек конфигурации PHP_INI_SYSTEM, установить

wincache.enablecli=1

в дополнительных настройках php.

Тогда следующий фрагмент кода должен работать хорошо:

public function fire()
{
wincache_ucache_set('foo','goo',0);
var_dump(wincache_ucache_get('foo'));
}

или как:

use Cache;
public function fire()
{

Cache::forever('someKey', 'someValue');
var_dump(Cache::get('someKey'));

}
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]