/
var
/
www
/
cobraambalaj
/
vendor
/
psy
/
psysh
/
src
/
VersionUpdater
/
/var/www/cobraambalaj/vendor/psy/psysh/src/VersionUpdater
mkdir
upload
Name
Size
Mode
Actions
Checker.php
552
0644
edit
dl
rm
GitHubChecker.php
2126
0644
edit
dl
rm
IntervalChecker.php
1770
0644
edit
dl
rm
NoopChecker.php
605
0644
edit
dl
rm
Edit:
/var/www/cobraambalaj/vendor/psy/psysh/src/VersionUpdater/IntervalChecker.php
(1770B)
<?php /* * This file is part of Psy Shell. * * (c) 2012-2020 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Psy\VersionUpdater; class IntervalChecker extends GitHubChecker { private $cacheFile; private $interval; public function __construct($cacheFile, $interval) { $this->cacheFile = $cacheFile; $this->interval = $interval; } public function fetchLatestRelease() { // Read the cached file $cached = \json_decode(@\file_get_contents($this->cacheFile, false)); if ($cached && isset($cached->last_check) && isset($cached->release)) { $now = new \DateTime(); $lastCheck = new \DateTime($cached->last_check); if ($lastCheck >= $now->sub($this->getDateInterval())) { return $cached->release; } } // Fall back to fetching from GitHub $release = parent::fetchLatestRelease(); if ($release && isset($release->tag_name)) { $this->updateCache($release); } return $release; } private function getDateInterval() { switch ($this->interval) { case Checker::DAILY: return new \DateInterval('P1D'); case Checker::WEEKLY: return new \DateInterval('P1W'); case Checker::MONTHLY: return new \DateInterval('P1M'); } } private function updateCache($release) { $data = [ 'last_check' => \date(\DATE_ATOM), 'release' => $release, ]; \file_put_contents($this->cacheFile, \json_encode($data)); } }
Save
cmd:
run