From 750ccb0c47f64275748dfa053dd1d454ef41e9c4 Mon Sep 17 00:00:00 2001 From: Peter Schade Date: Tue, 21 Jul 2026 09:09:21 +0200 Subject: [PATCH] Fix implicitly nullable parameters deprecated in PHP 8.4 Explicitly mark nullable parameters (`?Type`) instead of relying on the implicit nullability of a typed parameter with a `null` default, which is deprecated as of PHP 8.4 and emits a deprecation notice at runtime. Affected signatures: - QueryBuilderHandler::__construct(), delete(), getEvent() - Exception::__construct(), create() - BaseAdapter::delete() - Sqlserver::delete() - NestedCriteria::whereHandler() --- src/Pecee/Pixie/Exception.php | 4 ++-- src/Pecee/Pixie/QueryBuilder/Adapters/BaseAdapter.php | 2 +- src/Pecee/Pixie/QueryBuilder/Adapters/Sqlserver.php | 2 +- src/Pecee/Pixie/QueryBuilder/NestedCriteria.php | 2 +- src/Pecee/Pixie/QueryBuilder/QueryBuilderHandler.php | 6 +++--- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Pecee/Pixie/Exception.php b/src/Pecee/Pixie/Exception.php index 88d08fc..22ab6de 100644 --- a/src/Pecee/Pixie/Exception.php +++ b/src/Pecee/Pixie/Exception.php @@ -28,7 +28,7 @@ class Exception extends \Exception */ protected $query; - final public function __construct(string $message = '', int $code = 0, Throwable $previous = null, QueryObject $query = null) + final public function __construct(string $message = '', int $code = 0, ?Throwable $previous = null, ?QueryObject $query = null) { parent::__construct($message, $code, $previous); $this->query = $query; @@ -45,7 +45,7 @@ final public function __construct(string $message = '', int $code = 0, Throwable * @see https://www.postgresql.org/docs/9.4/static/errcodes-appendix.html * @see https://sqlite.org/c3ref/c_abort.html */ - public static function create(\Exception $e, string $adapterName = null, QueryObject $query = null) + public static function create(\Exception $e, ?string $adapterName = null, ?QueryObject $query = null) { if ($e instanceof \PDOException) { diff --git a/src/Pecee/Pixie/QueryBuilder/Adapters/BaseAdapter.php b/src/Pecee/Pixie/QueryBuilder/Adapters/BaseAdapter.php index 05d32bc..5133a30 100644 --- a/src/Pecee/Pixie/QueryBuilder/Adapters/BaseAdapter.php +++ b/src/Pecee/Pixie/QueryBuilder/Adapters/BaseAdapter.php @@ -394,7 +394,7 @@ public function criteriaOnly(array $statements, $bindValues = true): array * @return array * @throws Exception */ - public function delete(array $statements, array $columns = null): array + public function delete(array $statements, ?array $columns = null): array { $table = end($statements['tables']); diff --git a/src/Pecee/Pixie/QueryBuilder/Adapters/Sqlserver.php b/src/Pecee/Pixie/QueryBuilder/Adapters/Sqlserver.php index 2d35e5e..b2fdfa1 100644 --- a/src/Pecee/Pixie/QueryBuilder/Adapters/Sqlserver.php +++ b/src/Pecee/Pixie/QueryBuilder/Adapters/Sqlserver.php @@ -129,7 +129,7 @@ public function select(array $statements): array * @return array * @throws Exception */ - public function delete(array $statements, array $columns = null): array + public function delete(array $statements, ?array $columns = null): array { $table = end($statements['tables']); diff --git a/src/Pecee/Pixie/QueryBuilder/NestedCriteria.php b/src/Pecee/Pixie/QueryBuilder/NestedCriteria.php index d57704d..a0ecf75 100644 --- a/src/Pecee/Pixie/QueryBuilder/NestedCriteria.php +++ b/src/Pecee/Pixie/QueryBuilder/NestedCriteria.php @@ -17,7 +17,7 @@ class NestedCriteria extends QueryBuilderHandler * * @return static */ - protected function whereHandler($key, string $operator = null, $value = null, $joiner = 'AND'): QueryBuilderHandler + protected function whereHandler($key, ?string $operator = null, $value = null, $joiner = 'AND'): QueryBuilderHandler { $key = $this->addTablePrefix($key); $this->statements['criteria'][] = compact('key', 'operator', 'value', 'joiner'); diff --git a/src/Pecee/Pixie/QueryBuilder/QueryBuilderHandler.php b/src/Pecee/Pixie/QueryBuilder/QueryBuilderHandler.php index 22be66a..2a56d73 100644 --- a/src/Pecee/Pixie/QueryBuilder/QueryBuilderHandler.php +++ b/src/Pecee/Pixie/QueryBuilder/QueryBuilderHandler.php @@ -84,7 +84,7 @@ class QueryBuilderHandler implements IQueryBuilderHandler * * @throws Exception */ - final public function __construct(Connection $connection = null) + final public function __construct(?Connection $connection = null) { $this->connection = $connection ?? Connection::getStoredConnection(); @@ -860,7 +860,7 @@ public function max(string $field): float * @throws \Pecee\Pixie\Exceptions\TableNotFoundException * @return \PDOStatement */ - public function delete(array $columns = null): \PDOStatement + public function delete(?array $columns = null): \PDOStatement { /* @var $response \PDOStatement */ $queryObject = $this->getQuery('delete', $columns); @@ -974,7 +974,7 @@ public function findAll(string $fieldName, $value): array * * @return callable|null */ - public function getEvent(string $name, string $table = null): ?callable + public function getEvent(string $name, ?string $table = null): ?callable { return $this->connection->getEventHandler()->getEvent($name, $table); }