From b711fb493db19c40bd6f31ce95cf195fb3d0aad5 Mon Sep 17 00:00:00 2001 From: Simon Mundy Date: Mon, 12 Jan 2026 14:35:05 +1100 Subject: [PATCH 1/2] Changed signature for prepareStatementForSqlObject() Removed unnecessary inline @var casts Closes #115 --- src/RowGateway/AbstractRowGateway.php | 5 ----- src/Sql/Sql.php | 7 ++++--- src/TableGateway/AbstractTableGateway.php | 5 ----- test/unit/Sql/AbstractSqlFunctionalTestCase.php | 2 -- 4 files changed, 4 insertions(+), 15 deletions(-) diff --git a/src/RowGateway/AbstractRowGateway.php b/src/RowGateway/AbstractRowGateway.php index 38636ebf..a818865a 100644 --- a/src/RowGateway/AbstractRowGateway.php +++ b/src/RowGateway/AbstractRowGateway.php @@ -8,7 +8,6 @@ use Countable; // phpcs:ignore SlevomatCodingStandard.Namespaces.UnusedUses.UnusedUse use Override; -use PhpDb\Adapter\Driver\StatementInterface; use PhpDb\Sql\Sql; use PhpDb\Sql\TableIdentifier; use ReturnTypeWillChange; @@ -125,7 +124,6 @@ public function save(): int } } - /** @var StatementInterface $statement */ $statement = $this->sql->prepareStatementForSqlObject($this->sql->update()->set($data)->where($where)); $result = $statement->execute(); $rowsAffected = $result->getAffectedRows(); @@ -145,7 +143,6 @@ public function save(): int $insert = $this->sql->insert(); $insert->values($this->data); - /** @var StatementInterface $statement */ $statement = $this->sql->prepareStatementForSqlObject($insert); $result = $statement->execute(); @@ -166,7 +163,6 @@ public function save(): int } // refresh data - /** @var StatementInterface $statement */ $statement = $this->sql->prepareStatementForSqlObject($this->sql->select()->where($where)); $result = $statement->execute(); $rowData = $result->current(); @@ -192,7 +188,6 @@ public function delete(): int // @todo determine if we need to do a select to ensure 1 row will be affected - /** @var StatementInterface $statement */ $statement = $this->sql->prepareStatementForSqlObject($this->sql->delete()->where($where)); $result = $statement->execute(); diff --git a/src/Sql/Sql.php b/src/Sql/Sql.php index 32fa50ab..6d98fe8e 100644 --- a/src/Sql/Sql.php +++ b/src/Sql/Sql.php @@ -6,7 +6,6 @@ use PhpDb\Adapter\AdapterInterface; use PhpDb\Adapter\Driver\StatementInterface; -use PhpDb\Adapter\StatementContainerInterface; use function sprintf; @@ -109,11 +108,13 @@ public function prepareStatementForSqlObject( PreparableSqlInterface $sqlObject, ?StatementInterface $statement = null, ?AdapterInterface $adapter = null - ): ?StatementContainerInterface { + ): StatementInterface { $adapter = $adapter ?: $this->adapter; $statement = $statement ?: $adapter->getDriver()->createStatement(); - return $this->sqlPlatform->setSubject($sqlObject)->prepareStatement($adapter, $statement); + $this->sqlPlatform->setSubject($sqlObject)->prepareStatement($adapter, $statement); + + return $statement; } /** diff --git a/src/TableGateway/AbstractTableGateway.php b/src/TableGateway/AbstractTableGateway.php index 4848b2b1..39668ae4 100644 --- a/src/TableGateway/AbstractTableGateway.php +++ b/src/TableGateway/AbstractTableGateway.php @@ -7,7 +7,6 @@ use Closure; use Override; use PhpDb\Adapter\AdapterInterface; -use PhpDb\Adapter\Driver\StatementInterface; use PhpDb\ResultSet\ResultSet; use PhpDb\ResultSet\ResultSetInterface; use PhpDb\Sql\Delete; @@ -191,7 +190,6 @@ protected function executeSelect(Select $select): ResultSetInterface $this->featureSet->apply(EventFeatureEventsInterface::EVENT_PRE_SELECT, [$select]); // prepare and execute - /** @var StatementInterface $statement */ $statement = $this->sql->prepareStatementForSqlObject($select); $result = $statement->execute(); @@ -249,7 +247,6 @@ protected function executeInsert(Insert $insert): int $insert->into($unaliasedTable); } - /** @var StatementInterface $statement */ $statement = $this->sql->prepareStatementForSqlObject($insert); $result = $statement->execute(); $this->lastInsertValue = $this->adapter->getDriver()->getConnection()->getLastGeneratedValue(); @@ -322,7 +319,6 @@ protected function executeUpdate(Update $update): int $update->table($unaliasedTable); } - /** @var StatementInterface $statement */ $statement = $this->sql->prepareStatementForSqlObject($update); $result = $statement->execute(); @@ -381,7 +377,6 @@ protected function executeDelete(Delete $delete): int $delete->from($unaliasedTable); } - /** @var StatementInterface $statement */ $statement = $this->sql->prepareStatementForSqlObject($delete); $result = $statement->execute(); diff --git a/test/unit/Sql/AbstractSqlFunctionalTestCase.php b/test/unit/Sql/AbstractSqlFunctionalTestCase.php index d5d6af44..227b18f0 100644 --- a/test/unit/Sql/AbstractSqlFunctionalTestCase.php +++ b/test/unit/Sql/AbstractSqlFunctionalTestCase.php @@ -8,7 +8,6 @@ use PhpDb\Adapter\Driver\DriverInterface; use PhpDb\Adapter\Driver\StatementInterface; use PhpDb\Adapter\ParameterContainer; -use PhpDb\Adapter\StatementContainer; use PhpDb\Sql; use PhpDb\Sql\Ddl\Column\Column; use PhpDb\Sql\Ddl\CreateTable; @@ -279,7 +278,6 @@ public function test(PreparableSqlInterface|SqlInterface $sqlObject, string $pla if (is_array($expected) && isset($expected['prepare'])) { self::assertInstanceOf(PreparableSqlInterface::class, $sqlObject); - /** @var StatementInterface|StatementContainer $actual */ $actual = $sql->prepareStatementForSqlObject($sqlObject); self::assertEquals($expected['prepare'], $actual->getSql(), 'prepareStatement()'); if (isset($expected['parameters'])) { From aa78e5c5b679243b9a808d5e0fca764d7a82e05c Mon Sep 17 00:00:00 2001 From: Simon Mundy Date: Mon, 12 Jan 2026 14:54:00 +1100 Subject: [PATCH 2/2] Modernised assignment --- src/Sql/Sql.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Sql/Sql.php b/src/Sql/Sql.php index 6d98fe8e..50b45e48 100644 --- a/src/Sql/Sql.php +++ b/src/Sql/Sql.php @@ -109,8 +109,8 @@ public function prepareStatementForSqlObject( ?StatementInterface $statement = null, ?AdapterInterface $adapter = null ): StatementInterface { - $adapter = $adapter ?: $this->adapter; - $statement = $statement ?: $adapter->getDriver()->createStatement(); + $adapter ??= $this->adapter; + $statement ??= $adapter->getDriver()->createStatement(); $this->sqlPlatform->setSubject($sqlObject)->prepareStatement($adapter, $statement);