diff options
| author | Lester Caine <lester@lsces.co.uk> | 2026-05-26 14:50:52 +0100 |
|---|---|---|
| committer | Lester Caine <lester@lsces.co.uk> | 2026-05-26 14:50:52 +0100 |
| commit | 4415a0101deb0e12a7fc7d4748320a486a64b1c3 (patch) | |
| tree | 5fe4b0f0656848572ba3d934e83a7513238db09e | |
| parent | 0186c01d4ddbcbf91631b1f300ab9021c52141f7 (diff) | |
| download | install-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-x | includes/classes/BitInstaller.php | 25 | ||||
| -rwxr-xr-x | includes/install_upgrade.php | 2 | ||||
| -rwxr-xr-x | templates/install_upgrade.tpl | 2 |
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> |
