From 19affc4a76643f75c9c03aa5a9e4d29c7d45a578 Mon Sep 17 00:00:00 2001 From: DariusIII Date: Fri, 11 Aug 2017 10:03:35 +0200 Subject: [PATCH] Update Versions class --- nntmux/utility/Versions.php | 70 ++++++++++++++++++++----------------- 1 file changed, 38 insertions(+), 32 deletions(-) diff --git a/nntmux/utility/Versions.php b/nntmux/utility/Versions.php index d74691f7a..c167a838a 100755 --- a/nntmux/utility/Versions.php +++ b/nntmux/utility/Versions.php @@ -18,22 +18,22 @@ class Versions const UPDATED_SQL_FILE_LAST = 8; /** - * @var \nntmux\utility\Git instance variable. + * @var Git instance variable. */ public $git; /** - * @var object nntmux\ColorCLI + * @var ColorCLI */ public $out; /** - * @var integer Bitwise mask of elements that have been changed. + * @var int */ protected $_changes = 0; /** - * @var string Path and filename for the XML file. + * @var null|string */ protected $_filespec; @@ -84,7 +84,7 @@ class Versions $this->getValidVersionsFile(); } - public function changes() + public function changes(): int { return $this->_changes; } @@ -116,15 +116,15 @@ class Versions } $count = $this->git->commits(); - if ($this->_vers->git->commit->__toString() < $count || GIT_PRE_COMMIT === true) { + if (GIT_PRE_COMMIT === true || $this->_vers->git->commit->__toString() < $count) { // Allow pre-commit to override the commit number (often branch number is higher than dev's) if ($update) { if (GIT_PRE_COMMIT === true) { // only the pre-commit script is allowed to set the NEXT commit number - $count += 1; + $count++; } - if ($count != $this->_vers->git->commit) { - echo $this->out->primary("Updating commit number to {$count}"); + if ($count !== $this->_vers->git->commit) { + echo ColorCLI::primary("Updating commit number to {$count}"); $this->_vers->git->commit = $count; $this->_changes |= self::UPDATED_GIT_COMMIT; } @@ -143,13 +143,14 @@ class Versions public function checkGitTag($update = true) { trigger_error( - "This method is deprecated. Use app/extensions/utils/Versions::checkGitTag() instead."); + 'This method is deprecated. Use app/extensions/utils/Versions::checkGitTag() instead.' + ); $branch = $this->git->getBranch(); $this->_gitHighestTag = $latest = trim($this->git->tagLatest()); $ver = preg_match('#v(\d+\.\d+\.\d+).*#', $latest, $matches) ? $matches[1] : $latest; - if (!in_array($branch, $this->_stable)) { + if (!in_array($branch, $this->_stable, false)) { if (version_compare($this->_vers->git->tag, '0.0.0', '!=')) { $this->_vers->git->tag = '0.0.0'; $this->_changes |= self::UPDATED_GIT_TAG; @@ -159,16 +160,16 @@ class Versions // Check if version file's entry is the same as current branch's tag if (version_compare($this->_vers->git->tag, $latest, '!=')) { if ($update) { - echo $this->out->primaryOver("Updating tag version to ") . $this->out->headerOver($latest); + echo ColorCLI::primaryOver('Updating tag version to ') . ColorCLI::headerOver($latest); $this->_vers->git->tag = $ver; $this->_changes |= self::UPDATED_GIT_TAG; } else { - echo $this->out->primaryOver("Leaving tag version at ") . - $this->out->headerOver($this->_vers->git->tag); + echo ColorCLI::primaryOver('Leaving tag version at ') . + ColorCLI::headerOver($this->_vers->git->tag); } return $this->_vers->git->tag; } else { - echo $this->out->primaryOver("Tag version is ") . $this->out->header($latest); + echo ColorCLI::primaryOver('Tag version is ') . ColorCLI::header($latest); } return false; } @@ -180,16 +181,16 @@ class Versions * * @return boolean The new database sqlpatch version, or false. */ - public function checkSQLDb($update = false) + public function checkSQLDb($update = false): bool { $this->checkSQLFileLatest($update); //$settings = new DB(); //$setting = $settings->getSetting('sqlpatch'); - if ($this->_vers->sql->db->__toString() != $this->_vers->sql->file->__toString()) { + if ($this->_vers->sql->db->__toString() !== $this->_vers->sql->file->__toString()) { if ($update) { - echo $this->out->primaryOver("Updating Db revision to " . $this->_vers->sql->file); + echo ColorCLI::primaryOver('Updating Db revision to ' . $this->_vers->sql->file); $this->_vers->sql->db = $this->_vers->sql->file->__toString(); $this->_changes |= self::UPDATED_SQL_DB_PATCH; } @@ -218,16 +219,16 @@ class Versions $files = Utility::getDirFiles($options); natsort($files); - $last = (preg_match($options['regex'], end($files), $matches)) ? (int)$matches['patch'] : false; + $last = preg_match($options['regex'], end($files), $matches) ? (int)$matches['patch'] : false; if ($update) { - if ($last !== false && $this->_vers->sql->file->__toString() != $last) { - echo $this->out->primary("Updating latest patch file to " . $last); + if ($last !== false && $this->_vers->sql->file->__toString() !== $last) { + echo ColorCLI::primary('Updating latest patch file to ' . $last); $this->_vers->sql->file = $last; $this->_changes |= self::UPDATED_SQL_FILE_LAST; } - if ($this->_vers->sql->file->__toString() != $last) { + if ($this->_vers->sql->file->__toString() !== $last) { $this->_vers->sql->file = $last; $this->_changes |= self::UPDATED_SQL_DB_PATCH; } @@ -263,6 +264,12 @@ class Versions return $this->_gitHighestTag; } + /** + * @param null|string $filepath + * + * @return object|\SimpleXMLElement + * @throws \Exception + */ public function getValidVersionsFile($filepath = null) { $filepath = empty($filepath) ? $this->_filespec : $filepath; @@ -273,19 +280,19 @@ class Versions if ($this->_xml === false) { if (Utility::isCLI()) { - $this->out->error("Your versions XML file ($filepath) is broken, try updating from git."); + ColorCLI::error("Your versions XML file ($filepath) is broken, try updating from git."); } - throw new \Exception("Failed to open versions XML file '$filepath'"); + throw new \RuntimeException("Failed to open versions XML file '$filepath'"); } if ($this->_xml->count() > 0) { $vers = $this->_xml->xpath('/nntmux/versions'); - if ($vers[0]->count() == 0) { - $this->out->error("Your versions XML file ({NN_VERSIONS}) does not contain version info, try updating from git."); - throw new \Exception("Failed to find versions node in XML file '$filepath'"); + if ($vers[0]->count() === 0) { + ColorCLI::error('Your versions XML file ({NN_VERSIONS}) does not contain version info, try updating from git.'); + throw new \RuntimeException("Failed to find versions node in XML file '$filepath'"); } else { - $this->out->primary("Your versions XML file ({NN_VERSIONS}) looks okay, continuing."); + ColorCLI::primary('Your versions XML file ({NN_VERSIONS}) looks okay, continuing.'); $this->_vers = &$this->_xml->versions; } } else { @@ -299,12 +306,12 @@ class Versions * Check whether the XML has been changed by one of the methods here. * @return boolean True if the XML has been changed. */ - public function hasChanged() + public function hasChanged(): bool { - return $this->_changes != 0; + return $this->_changes !== 0; } - public function save() + public function save(): void { if ($this->hasChanged()) { $this->_xml->asXML($this->_filespec); @@ -312,4 +319,3 @@ class Versions } } } -?>