首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel + Wincache on MS Azure:不存储值

Laravel + Wincache on MS Azure:不存储值
EN

Stack Overflow用户
提问于 2016-02-10 15:13:20
回答 1查看 273关注 0票数 2

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

代码语言:javascript
复制
public function fire(Illuminate\Contracts\Cache\Repository $cache) {
    $cache->forever('someKey', 'someValue');

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

产出如下:

代码语言:javascript
复制
NULL

执行命令后通过wincache_ucache_get访问值也会返回NULL (带前缀和不带前缀)。有什么线索吗?

P.S.:根据phpinfo(),启用了wincache usercache : wincache.ucenabled On

经过更多的调试之后,我知道了更多的事实:

在一个独立的php文件中,wincache_ucache_setwincache_ucache_get完美地工作。

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

EN

回答 1

Stack Overflow用户

发布于 2016-02-11 08:41:11

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

默认情况下,它被设置为0,以便函数wincache_ucache_set()不能在手工命令中工作。

您可以参考Azure官员关于系统配置设置的指南,以设置

wincache.enablecli=1

在附加的php配置设置中。

然后,下面的代码片段应该工作得很好:

代码语言:javascript
复制
public function fire()
    {
        wincache_ucache_set('foo','goo',0);
        var_dump(wincache_ucache_get('foo')); 
    }

或者说:

代码语言:javascript
复制
use Cache;
public function fire()
    {

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

    }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35318872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档