请教:经常看到Yii2这样的框架中用类的数组成员做缓存,真的有实际作用吗?

thy38 2016-12-29 02:58:30
请教:经常看到Yii2这样的框架中用一个类的数组成员做缓存,像php这种每次请求都重新new对象的语言,真的有实际作用吗?
比如User::can
    public function can($permissionName, $params = [], $allowCaching = true)
{
if ($allowCaching && empty($params) && isset($this->_access[$permissionName])) {
return $this->_access[$permissionName];
}
if (($accessChecker = $this->getAccessChecker()) === null) {
return false;
}
$access = $accessChecker->checkAccess($this->getId(), $permissionName, $params);
if ($allowCaching && empty($params)) {
$this->_access[$permissionName] = $access;
}

return $access;
}


为什么不用cache组件来缓存?还是说它就只想在一个生命周期内缓存一下?
...全文
438 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2016-12-30
  • 打赏
  • 举报
回复
APC 会缓存代码,而不缓存数据 HTTP 协议是无状态的,所以 php 来的对象也是无状态的 没有缓存,则无法在两次 http 会话间共享数据 因此,如果如你说的 它就只想在一个生命周期内缓存一下 那么他将是毫无意义的代码!
thy38 2016-12-30
  • 打赏
  • 举报
回复
APC缓存会不会将这些类的成员数组缓存下来备用?
总哈哈 2016-12-29
  • 打赏
  • 举报
回复
对的,这样的写法就是为了只在这次请求缓存一下

4,251

社区成员

发帖
与我相关
我的任务
社区描述
国内外优秀PHP框架讨论学习
社区管理员
  • Framework
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧