diff options
| author | Nicofuma <github@nicofuma.fr> | 2014-04-14 19:09:06 +0200 |
|---|---|---|
| committer | Tristan Darricau <github@nicofuma.fr> | 2014-05-28 22:16:37 +0200 |
| commit | 44752c0dbfe11afb58de8956a79fbe5ec0f3e127 (patch) | |
| tree | 6514c20a487c6cd4091a72d864f501d0d336eefc /phpBB/phpbb | |
| parent | e0b2ceef833dee55a1701216d4f0823375e8fa74 (diff) | |
| download | forums-44752c0dbfe11afb58de8956a79fbe5ec0f3e127.tar forums-44752c0dbfe11afb58de8956a79fbe5ec0f3e127.tar.gz forums-44752c0dbfe11afb58de8956a79fbe5ec0f3e127.tar.bz2 forums-44752c0dbfe11afb58de8956a79fbe5ec0f3e127.tar.xz forums-44752c0dbfe11afb58de8956a79fbe5ec0f3e127.zip | |
[ticket/11366] Moving to \phpbb\version_helper
+ bug fix (missing exception)
+ Using \phpbb\version_helper
So, now, the version file have a new format :
{
"stable": {
"<branch>": {
"current": "<version>",
[ "announcement": "<announcement link>", ]
[ "download": "<download link>", ]
},
"<branch>": {
...
}
},
"unstable": {
}
}
PHPBB3-11366
Diffstat (limited to 'phpBB/phpbb')
| -rw-r--r-- | phpBB/phpbb/extension/version_helper.php | 257 |
1 files changed, 0 insertions, 257 deletions
diff --git a/phpBB/phpbb/extension/version_helper.php b/phpBB/phpbb/extension/version_helper.php deleted file mode 100644 index 5d7d4121f0..0000000000 --- a/phpBB/phpbb/extension/version_helper.php +++ /dev/null @@ -1,257 +0,0 @@ -<?php -/** -* -* @package extension -* @copyright (c) 2014 phpBB Group -* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 -* -*/ - -namespace phpbb\extension; - -/** - * Class to handle version checking and comparison for the extensions - */ -class version_helper -{ - /** - * @var string Host - */ - protected $host = ''; - - /** - * @var string Path to file - */ - protected $path = ''; - - /** - * @var string File name - */ - protected $file = ''; - - /** - * @var string Extension name - */ - protected $extension = ''; - - /** - * @var string Current version installed - */ - protected $current_version = ''; - - /** @var \phpbb\cache\service */ - protected $cache; - - /** @var \phpbb\user */ - protected $user; - - /** - * @var array Metadata of the latest versio - */ - protected $latest_version_metadata; - - /** - * Constructor - * - * @param \phpbb\cache\service $cache - * @param \phpbb\user $user - */ - public function __construct(\phpbb\cache\service $cache, \phpbb\user $user) - { - $this->cache = $cache; - $this->user = $user; - } - - /** - * Set the informations concerning the current version from the metadata - * - * @param array $metadata - * @throws \RuntimeException - */ - public function set_metadata($metadata) - { - if (! isset($metadata['extra']['version-check'])) - { - throw new \RuntimeException($this->user->lang('NO_VERSIONCHECK')); - } - - $meta_vc = $metadata['extra']['version-check']; - - $this->set_file_location($meta_vc['host'], $meta_vc['directory'], $meta_vc['filename']); - $this->set_extension($metadata['name']); - $this->set_current_version($metadata['version']); - } - - /** - * Set the name of the extention - * - * @param string Name of the extension - * @return version_helper - */ - public function set_extension($extension) - { - $this->extension = $extension; - - return $this; - } - - /** - * Set location to the file - * - * @param string $host Host (e.g. version.phpbb.com) - * @param string $path Path to file (e.g. /phpbb) - * @param string $file File name (Default: composer.json) - * @return version_helper - */ - public function set_file_location($host, $path, $file = 'composer.json') - { - $this->host = $host; - $this->path = $path; - $this->file = $file; - - return $this; - } - - /** - * Set current version - * - * @param string $version The current version - * @return version_helper - */ - public function set_current_version($version) - { - $this->current_version = $version; - - return $this; - } - - /** - * Wrapper for version_compare() that allows using uppercase A and B - * for alpha and beta releases. - * - * See http://www.php.net/manual/en/function.version-compare.php - * - * @param string $version1 First version number - * @param string $version2 Second version number - * @param string $operator Comparison operator (optional) - * - * @return mixed Boolean (true, false) if comparison operator is specified. - * Integer (-1, 0, 1) otherwise. - */ - public function compare($version1, $version2, $operator = null) - { - return phpbb_version_compare($version1, $version2, $operator); - } - - /** - * Say if the extension is up to date or not - * - * The informations about the lastest version are retrieved if needed - * - * @return bool true if the version is up to date - * @throws \RuntimeException - */ - public function is_uptodate() - { - if (empty($this->latest_version_metadata)) - { - $this->get_version(); - } - - return $this->compare($this->current_version, $this->latest_version_metadata['version'], '>='); - } - - /** - * Return the latest version number - * - * @return The latest version number ready to be displayed. - */ - public function get_latest_version() { - if (empty($this->latest_version_metadata)) - { - $this->get_version(); - } - - return htmlspecialchars($this->latest_version_metadata['version']); - } - - /** - * Return the latest download link - * - * @return The latest download link if existed, an empty string otherwise. - */ - public function get_latest_download_link() { - if (empty($this->latest_version_metadata)) - { - $this->get_version(); - } - - return isset($this->latest_version_metadata['extra']['download']) ? $this->latest_version_metadata['extra']['download']: ''; - } - - /** - * Return the latest announcement link - * - * @return The latest announcement link if existed, an empty string otherwise. - */ - public function get_latest_announcement_link() { - if (empty($this->latest_version_metadata)) - { - $this->get_version(); - } - - return isset($this->latest_version_metadata['extra']['announcement']) ? $this->latest_version_metadata['extra']['announcement']: ''; - } - - /** - * Obtains the latest version information - * - * @param bool $force_update Ignores cached data. Defaults to false. - * @return string Version info - * @throws \RuntimeException - */ - public function get_version($force_update = false) - { -echo 'Force : ' . $force_update; - $cache_file = 'versioncheck_ext_' . $this->extension . ':' . $this->host . $this->path . $this->file; - - $info = $this->cache->get($cache_file); - - if ($info === false || $force_update) - { - $errstr = $errno = ''; - $info = get_remote_file($this->host, $this->path, $this->file, $errstr, $errno); - - if (!empty($errstr)) - { - throw new \RuntimeException($errstr); - } - - $info = json_decode($info, true); - - if (empty($info['version'])) - { - $this->user->add_lang('acp/common'); - - throw new \RuntimeException($this->user->lang('VERSIONCHECK_FAIL')); - } - - // Replace & with & on announcement and download links - if (isset($info['extra']['announcement'])) - { - $info['extra']['announcement'] = str_replace('&', '&', $info['extra']['announcement']); - } - - if (isset($info['extra']['download'])) - { - $info['extra']['download'] = str_replace('&', '&', $info['extra']['download']); - } - - $this->cache->put($cache_file, $info, 86400); // 24 hours - } - - $this->latest_version_metadata = $info; - - return $info; - } -} |
