frozenway

frozenway

V2EX 第 226009 号会员,加入于 2017-04-14 11:38:54 +08:00
如何实例化一个有命名空间的动态类?如下代码:
PHP  •  frozenway  •  54 天前  •  最后回复来自 zpfhbyx
8
frozenway 最近回复了
XR 移动 也经常出现这个,频率平均两天一次
2 天前
回复了 Legman 创建的主题 问与答 抢不到 k40,求推荐安卓机
Redmi 9A , 谁便摔,不心疼
天天想着送礼物,你以为个个钱多的没地方花啊
14 天前
回复了 wolfz 创建的主题 问与答 你们相亲都碰见过什么沙雕任务
问:工作是什么?我:送外卖的。对方直接扭头走了。外卖也算是正儿八经的工作,又不是什么见不得光的
20
40 天前
回复了 andrewDDC 创建的主题 2021 今年好像还没有晒桌面,大佬们开始吧!
桌面有什么好晒,敢不敢晒自拍
TP5.1 的
```
/**
* 读取缓存
* @access public
* @param string $name 缓存变量名
* @param mixed $default 默认值
* @return mixed
*/
public function get($name, $default = false)
{
$this->readTimes++;

$filename = $this->getCacheKey($name);

if (!is_file($filename)) {
return $default;
}

$content = file_get_contents($filename);
$this->expire = null;

if (false !== $content) {
$expire = (int) substr($content, 8, 12);
if (0 != $expire && time() > filemtime($filename) + $expire) {
//缓存过期删除缓存文件
$this->unlink($filename);
return $default;
}

$this->expire = $expire;
$content = substr($content, 32);

if ($this->options['data_compress'] && function_exists('gzcompress')) {
//启用数据压缩
$content = gzuncompress($content);
}
return $this->unserialize($content);
} else {
return $default;
}
}

/**
* 写入缓存
* @access public
* @param string $name 缓存变量名
* @param mixed $value 存储数据
* @param int|\DateTime $expire 有效时间 0 为永久
* @return boolean
*/
public function set($name, $value, $expire = null)
{
$this->writeTimes++;

if (is_null($expire)) {
$expire = $this->options['expire'];
}

$expire = $this->getExpireTime($expire);
$filename = $this->getCacheKey($name, true);

if ($this->tag && !is_file($filename)) {
$first = true;
}

$data = $this->serialize($value);

if ($this->options['data_compress'] && function_exists('gzcompress')) {
//数据压缩
$data = gzcompress($data, 3);
}

$data = "<?php\n//" . sprintf('%012d', $expire) . "\n exit();?>\n" . $data;
$result = file_put_contents($filename, $data);

if ($result) {
isset($first) && $this->setTagItem($filename);
clearstatcache();
return true;
} else {
return false;
}
}
```
也没加锁,会不会也有问题?
@Makoto @setsunakute @sagaxu @lovecy 我现在用的是 thinkphp5.1 的 cache 的 file 模式去写缓存,看了源代码,也存在这种情况,好无助
关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1742 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 27ms · UTC 17:41 · PVG 01:41 · LAX 09:41 · JFK 12:41
♥ Do have faith in what you're doing.