summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLester Caine <lester@lsces.co.uk>2026-05-26 14:50:52 +0100
committerLester Caine <lester@lsces.co.uk>2026-05-26 14:50:52 +0100
commit4415a0101deb0e12a7fc7d4748320a486a64b1c3 (patch)
tree5fe4b0f0656848572ba3d934e83a7513238db09e
parent0186c01d4ddbcbf91631b1f300ab9021c52141f7 (diff)
downloadinstall-4415a0101deb0e12a7fc7d4748320a486a64b1c3.tar.gz
install-4415a0101deb0e12a7fc7d4748320a486a64b1c3.tar.bz2
install-4415a0101deb0e12a7fc7d4748320a486a64b1c3.zip
Fix PHP 8.5 uksort deprecation and namespace/object refs in upgrade step
- upgrade_version_sort now returns version_compare() int (-1/0/1) not bool - upgrade_package_sort call uses fully-qualified Bitweaver\Install namespace - install_upgrade.tpl uses gBitInstaller->getVersion() (correct in install context) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
-rwxr-xr-xincludes/classes/BitInstaller.php25
-rwxr-xr-xincludes/install_upgrade.php2
-rwxr-xr-xtemplates/install_upgrade.tpl2
3 files changed, 24 insertions, 5 deletions
diff --git a/includes/classes/BitInstaller.php b/includes/classes/BitInstaller.php
index 9574956..75df5b1 100755
--- a/includes/classes/BitInstaller.php
+++ b/includes/classes/BitInstaller.php
@@ -285,6 +285,25 @@ class BitInstaller extends BitSystem {
}
/**
+ * getVersion reads the installed version from DB during BIT_INSTALL (loadConfig is blocked, so we query directly).
+ */
+ public function getVersion( ?string $pPackage = null, $pDefault = BITWEAVER_VERSION ): string {
+ $config = empty( $pPackage ) ? 'bitweaver_version' : "package_{$pPackage}_version";
+ if( !empty( $this->mDb ) ) {
+ try {
+ $query = "SELECT `config_value` FROM `" . BIT_DB_PREFIX . "kernel_config` WHERE `config_name`=?";
+ $result = $this->mDb->getOne( $query, [ $config ] );
+ if( !empty( $result ) ) {
+ return $result;
+ }
+ } catch( \Throwable $e ) {
+ // kernel_config may not exist during a fresh install
+ }
+ }
+ return $pDefault;
+ }
+
+ /**
* upgradePackage
*
* @param string $pPackage
@@ -309,7 +328,7 @@ class BitInstaller extends BitSystem {
public function upgradePackageVersions( $pPackage ) {
if( !empty( $pPackage ) && !empty( $this->mPackageUpgrades[$pPackage] )) {
// make sure everything is in the right order
- uksort( $this->mPackageUpgrades[$pPackage], 'upgrade_version_sort' );
+ uksort( $this->mPackageUpgrades[$pPackage], 'Bitweaver\Install\upgrade_version_sort' );
foreach( array_keys( $this->mPackageUpgrades[$pPackage] ) as $version ) {
// version we are upgrading from
@@ -520,7 +539,7 @@ class BitInstaller extends BitSystem {
if( !empty( $sql ) ) $sql = null;
break;
case 'QUERY':
- uksort( $step, 'upgrade_query_sort' );
+ uksort( $step, 'Bitweaver\Install\upgrade_query_sort' );
foreach( array_keys( $step ) as $dbType ) {
if( $dbType == 'MYSQL' && preg_match( '/mysql/', $gBitDbType )) {
$sql = $step[$dbType];
@@ -686,7 +705,7 @@ function upgrade_package_sort( $a, $b ) {
* @return numeric sort direction
*/
function upgrade_version_sort( $a, $b ) {
- return version_compare( $a, $b, '>' );
+ return version_compare( $a, $b );
}
/**
diff --git a/includes/install_upgrade.php b/includes/install_upgrade.php
index 7ccfbf1..2907c18 100755
--- a/includes/install_upgrade.php
+++ b/includes/install_upgrade.php
@@ -19,7 +19,7 @@ if( !empty( $_REQUEST['upgrade_packages'] )) {
if( !empty( $_REQUEST['packages'] ) && is_array( $_REQUEST['packages'] )) {
// ensure all packages are in the right order before we start applying upgrades
- uasort( $_REQUEST['packages'], 'upgrade_package_sort' );
+ uasort( $_REQUEST['packages'], 'Bitweaver\Install\upgrade_package_sort' );
foreach( $_REQUEST['packages'] as $package ) {
if( $error = $gBitInstaller->upgradePackageVersions( $package )) {
diff --git a/templates/install_upgrade.tpl b/templates/install_upgrade.tpl
index 3a31f39..f1abdc1 100755
--- a/templates/install_upgrade.tpl
+++ b/templates/install_upgrade.tpl
@@ -15,7 +15,7 @@
<h3>{$package}</h3>
<input type="hidden" name="packages[]" value="{$package}" />
<dl>
- <dt>{$gBitSystem->getVersion($package)}</dt>
+ <dt>{$gBitInstaller->getVersion($package)}</dt>
<dd><small>Currently installed version</small></dd>
{foreach from=$upgrade item=data key=version}
<dt>{$data.version}</dt>