当前路径:vendor/league/flysystem-cached-adapter/src/Storage/Adapter.php <?php namespace League\Flysystem\Cached\Storage; use League\Flysystem\AdapterInterface; use League\Flysystem\Config; class Adapter extends AbstractCache { /** * @var AdapterInterface An adapter */ protected $adapter; /** * @var string the file to cache to */ protected $file; /** * @var int|null seconds until cache expiration */ protected $expire = null; /** * Constructor. * * @param AdapterInterface $adapter adapter * @param string $file the file to cache to * @param int|null $expire seconds until cache expiration */ public function __construct(AdapterInterface $adapter, $file, $expire = null) { $this->adapter = $adapter; $this->file = $file; $this->setExpire($expire); } /** * Set the expiration time in seconds. * * @param int $expire relative expiration time */ protected function setExpire($expire) { if ($expire) { $this->expire = $this->getTime($expire); } } /** * Get expiration time in seconds. * * @param int $time relative expiration time * * @return int actual expiration time */ protected function getTime($time = 0) { return intval(microtime(true)) + $time; } /** * {@inheritdoc} */ public function setFromStorage($json) { list($cache, $complete, $expire) = json_decode($json, true); if (! $expire || $expire > $this->getTime()) { $this->cache = is_array($cache) ? $cache : []; $this->complete = is_array($complete) ? $complete : []; } else { $this->adapter->delete($this->file); } } /** * {@inheritdoc} */ public function load() { if ($this->adapter->has($this->file)) { $file = $this->adapter->read($this->file); if ($file && !empty($file['contents'])) { $this->setFromStorage($file['contents']); } } } /** * {@inheritdoc} */ public function getForStorage() { $cleaned = $this->cleanContents($this->cache); return json_encode([$cleaned, $this->complete, $this->expire]); } /** * {@inheritdoc} */ public function save() { $config = new Config(); $contents = $this->getForStorage(); if ($this->adapter->has($this->file)) { $this->adapter->update($this->file, $contents, $config); } else { $this->adapter->write($this->file, $contents, $config); } } }
相关源码
- 可旋转的彩色立方体C#源代码2021-10-29
- 在线考试系统2021-10-15
- EduSoho开源网校系统源码2019-06-27
- 仿拼多多小程序商城源码2019-06-06
- PHP5网站运行监测系统源码2017-04-14
关于我们 | 顾问团队 | 发展历程 | 联系我们 | 源码上传
联系电话(Tel):4008-010-151(免长途)
地址:北京市海淀区大恒科技大厦五层 邮编:100080
Floor 5th,Daheng Building,Zhongguancun,Beijing,China,100080
51Aspx.com 版权所有 CopyRight © 2006-2022. 京ICP备09089570号 | 京公网安备11010702000869号
联系电话(Tel):4008-010-151(免长途)
地址:北京市海淀区大恒科技大厦五层 邮编:100080
Floor 5th,Daheng Building,Zhongguancun,Beijing,China,100080
51Aspx.com 版权所有 CopyRight © 2006-2022. 京ICP备09089570号 | 京公网安备11010702000869号