From de144d44238f8cf1e3e651d3b6b98e3b453a437b Mon Sep 17 00:00:00 2001 From: Ollama Date: Fri, 22 May 2026 14:53:55 +0200 Subject: [PATCH] fix: cast string returns to int in MY_Migration basename() returns string and database column values are strings, but get_latest_migration() and get_current_version() declare int return types. PHP 8.0+ enforces strict return types and no longer silently coerces strings to int, causing a TypeError on fresh installs. Fixes #4559 --- app/Libraries/MY_Migration.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Libraries/MY_Migration.php b/app/Libraries/MY_Migration.php index c27954145..98177d770 100644 --- a/app/Libraries/MY_Migration.php +++ b/app/Libraries/MY_Migration.php @@ -25,7 +25,7 @@ class MY_Migration extends MigrationRunner public function get_latest_migration(): int { $migrations = $this->findMigrations(); - return basename(end($migrations)->version); + return (int) basename(end($migrations)->version); } /** @@ -41,7 +41,7 @@ class MY_Migration extends MigrationRunner $builder = $db->table('migrations'); $builder->select('version')->orderBy('version', 'DESC')->limit(1); $result = $builder->get()->getRow(); - return $result ? $result->version : 0; + return $result ? (int) $result->version : 0; } } catch (\Exception $e) { // Database not available yet (e.g. fresh install before schema).