我正在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 usercache : wincache.ucenabled On
经过更多的调试之后,我知道了更多的事实:
在一个独立的php文件中,wincache_ucache_set和wincache_ucache_get完美地工作。
但是,对wincache_ucache_set在Illuminate\Cache\WinCacheStore中的调用返回false。
发布于 2016-02-11 08:41:11
因为在php运行时有一个设置wincache.enablecli来控制wincache是否在CLI模式下被启用。
默认情况下,它被设置为0,以便函数wincache_ucache_set()不能在手工命令中工作。
您可以参考Azure官员关于系统配置设置的指南,以设置
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'));
}https://stackoverflow.com/questions/35318872
复制相似问题