php - MS Azure 上的 Laravel + Wincache : Not storing values

标签 php laravel azure wincache

我正在 azure 上运行 PHP 应用程序,并且遇到一些奇怪的行为:此代码片段在控制台命令中运行:

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_setwincache_ucache_get 完美工作。

但是,对 Illuminate\Cache\WinCacheStore 中的 wincache_ucache_set 的调用返回 false

最佳答案

因为有一个设置wincache.enablecli在 php 运行时控制 CLI 模式下是否启用 wincache

默认情况下,它设置为 0,因此函数 wincache_ucache_set() 无法在 artisan 命令中工作。

您可以引用Azure官方关于Changing PHP_INI_SYSTEM configuration settings的指南,设置

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'));

    }

关于php - MS Azure 上的 Laravel + Wincache : Not storing values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35318872/

相关文章:

javascript - AJAX 在提交时返回数据两次

php - Phalcon 模型 find() 的条件在另一个表中

php - Laravel 验证不适用于文件数组

php - 如何从 Laravel 中的另一个相关表获取 mysql 列的最大值和最小值

rest - 如何使用 MS Graph API 列出 Office 365 德国域中的用户?

c# - 通过 SendGrid 的纯文本电子邮件中的额外新行

PHP : How check movie format is MKV or WMV

PHP POST 不工作。发送但 NULL 参数?

ajax - 多个异步ajax请求中laravel 5中的CSRF token 不匹配错误?

Azure API 管理查找和替换不适用于 URL