From ba7120bb9ebe047047a38c17387a60a5b0a8e14a Mon Sep 17 00:00:00 2001 From: Andrew Brown Date: Tue, 28 Oct 2025 17:07:33 -0500 Subject: [PATCH] always use the `operator` argument for `version_compare()` `version_compare()` can be called without a 3rd argument, and return a -1|0|1, or with a 3rd argument and return a boolean. we currently use this function 28 times in the framework: - 23 with the 3rd argument - 5 without the 3rd argument this commit standardizes our calls to ***always*** use the 3rd argument and return a boolean, which has a couple benefits: - consistency - slight readability improvement rather than magic numbers (subjective I guess) - defensive against operator precedence issues https://www.php.net/manual/en/function.version-compare.php --- src/Illuminate/Database/Connectors/MySqlConnector.php | 2 +- src/Illuminate/Database/Eloquent/Model.php | 2 +- src/Illuminate/Database/Query/Grammars/MySqlGrammar.php | 2 +- src/Illuminate/Database/Query/Grammars/SQLiteGrammar.php | 2 +- src/Illuminate/Database/SQLiteConnection.php | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Illuminate/Database/Connectors/MySqlConnector.php b/src/Illuminate/Database/Connectors/MySqlConnector.php index fc55b801407f..7299f7788589 100755 --- a/src/Illuminate/Database/Connectors/MySqlConnector.php +++ b/src/Illuminate/Database/Connectors/MySqlConnector.php @@ -145,7 +145,7 @@ protected function getSqlMode(PDO $connection, array $config) $version = $config['version'] ?? $connection->getAttribute(PDO::ATTR_SERVER_VERSION); - if (version_compare($version, '8.0.11') >= 0) { + if (version_compare($version, '8.0.11', '>=')) { return 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'; } diff --git a/src/Illuminate/Database/Eloquent/Model.php b/src/Illuminate/Database/Eloquent/Model.php index f8a609fc014b..7a366808a757 100644 --- a/src/Illuminate/Database/Eloquent/Model.php +++ b/src/Illuminate/Database/Eloquent/Model.php @@ -2597,7 +2597,7 @@ public function __sleep() $keys = get_object_vars($this); - if (version_compare(PHP_VERSION, '8.4.0') >= 0) { + if (version_compare(PHP_VERSION, '8.4.0', '>=')) { foreach ((new ReflectionClass($this))->getProperties() as $property) { if ($property->hasHooks()) { unset($keys[$property->getName()]); diff --git a/src/Illuminate/Database/Query/Grammars/MySqlGrammar.php b/src/Illuminate/Database/Query/Grammars/MySqlGrammar.php index 1856b998ca01..6c42096cff35 100755 --- a/src/Illuminate/Database/Query/Grammars/MySqlGrammar.php +++ b/src/Illuminate/Database/Query/Grammars/MySqlGrammar.php @@ -135,7 +135,7 @@ public function useLegacyGroupLimit(Builder $query) { $version = $query->getConnection()->getServerVersion(); - return ! $query->getConnection()->isMaria() && version_compare($version, '8.0.11') < 0; + return ! $query->getConnection()->isMaria() && version_compare($version, '8.0.11', '<'); } /** diff --git a/src/Illuminate/Database/Query/Grammars/SQLiteGrammar.php b/src/Illuminate/Database/Query/Grammars/SQLiteGrammar.php index f9a82febd948..49a27724b465 100755 --- a/src/Illuminate/Database/Query/Grammars/SQLiteGrammar.php +++ b/src/Illuminate/Database/Query/Grammars/SQLiteGrammar.php @@ -228,7 +228,7 @@ protected function compileGroupLimit(Builder $query) { $version = $query->getConnection()->getServerVersion(); - if (version_compare($version, '3.25.0') >= 0) { + if (version_compare($version, '3.25.0', '>=')) { return parent::compileGroupLimit($query); } diff --git a/src/Illuminate/Database/SQLiteConnection.php b/src/Illuminate/Database/SQLiteConnection.php index 42a5947741f2..3d8ce8b1a2f2 100755 --- a/src/Illuminate/Database/SQLiteConnection.php +++ b/src/Illuminate/Database/SQLiteConnection.php @@ -27,7 +27,7 @@ public function getDriverTitle() */ protected function executeBeginTransactionStatement() { - if (version_compare(PHP_VERSION, '8.4.0') >= 0) { + if (version_compare(PHP_VERSION, '8.4.0', '>=')) { $mode = $this->getConfig('transaction_mode') ?? 'DEFERRED'; $this->getPdo()->exec("BEGIN {$mode} TRANSACTION");