Skip to content

Commit

Permalink
[TASK] Use Connection instead of PDO
Browse files Browse the repository at this point in the history
In Doctrine DBAL v4, as described in the [documentation](https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/Database/QueryBuilder/Index.html#database-query-builder-create-named-parameter), support for using the `\PDO::PARAM_*` constants has been dropped in favor of the enum types. This should be migrated to `Connection::PARAM_*` in order to be compatible with TYPO3 v13 later on. `Connection::PARAM_*` can already be used now as it is compatible with TYPO3 11 and 12.
  • Loading branch information
ErHaWeb committed Mar 20, 2024
1 parent 3ff21b2 commit fbe6a00
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 10 deletions.
2 changes: 1 addition & 1 deletion Classes/Controller/PluginController.php
Original file line number Diff line number Diff line change
Expand Up @@ -393,7 +393,7 @@ private function extractGroup($record_ids)
$constraints = Div::getConstraintsForQueryBuilder($foreign, $this->cObj, $queryBuilder);

// set uid
$constraints[] = $queryBuilder->expr()->eq($local . '.uid', $queryBuilder->createNamedParameter($item, \PDO::PARAM_INT));
$constraints[] = $queryBuilder->expr()->eq($local . '.uid', $queryBuilder->createNamedParameter($item, Connection::PARAM_INT));

$rows = $queryBuilder
->select($foreign . '.*')
Expand Down
11 changes: 6 additions & 5 deletions Classes/Div.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
use Doctrine\DBAL\FetchMode;
use Doctrine\DBAL\ParameterType;
use TYPO3\CMS\Core\Context\Context;
use TYPO3\CMS\Core\Database\Connection;
use TYPO3\CMS\Core\Database\ConnectionPool;
use TYPO3\CMS\Core\Database\Query\Restriction\FrontendRestrictionContainer;
use TYPO3\CMS\Core\Http\RequestFactory;
Expand All @@ -35,21 +36,21 @@ public static function getConstraintsForQueryBuilder($table, ContentObjectRender

// Version
$constraints[] =
$queryBuilder->expr()->gte($table . '.pid', $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT));
$queryBuilder->expr()->gte($table . '.pid', $queryBuilder->createNamedParameter(0, Connection::PARAM_INT));

// Translation
if ($ctrl['languageField'] ?? null) {
$orConstraints = [
$queryBuilder->expr()->eq($table . '.' . $ctrl['languageField'], $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)),
$queryBuilder->expr()->eq($table . '.' . $ctrl['languageField'], $queryBuilder->createNamedParameter(-1, \PDO::PARAM_INT))
$queryBuilder->expr()->eq($table . '.' . $ctrl['languageField'], $queryBuilder->createNamedParameter(0, Connection::PARAM_INT)),
$queryBuilder->expr()->eq($table . '.' . $ctrl['languageField'], $queryBuilder->createNamedParameter(-1, Connection::PARAM_INT))
];

$languageAspect = GeneralUtility::makeInstance(Context::class)->getAspect('language');

if ($languageAspect->getContentId() && $ctrl['transOrigPointerField']) {
$orConstraints[] = $queryBuilder->expr()->and($queryBuilder->expr()->eq($table . '.' . $ctrl['languageField'],
$queryBuilder->createNamedParameter((int) $languageAspect->getContentId(), \PDO::PARAM_INT)), $queryBuilder->expr()->eq($table . '.' . $ctrl['transOrigPointerField'],
$queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)));
$queryBuilder->createNamedParameter((int) $languageAspect->getContentId(), Connection::PARAM_INT)), $queryBuilder->expr()->eq($table . '.' . $ctrl['transOrigPointerField'],
$queryBuilder->createNamedParameter(0, Connection::PARAM_INT)));
}
$constraints[] = $queryBuilder->expr()->or(...$orConstraints);
}
Expand Down
7 changes: 4 additions & 3 deletions Classes/Updates/FileLocationUpdater.php
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
use Psr\Log\LoggerAwareTrait;
use Symfony\Component\Console\Output\OutputInterface;
use TYPO3\CMS\Core\Core\Environment;
use TYPO3\CMS\Core\Database\Connection;
use TYPO3\CMS\Core\Database\ConnectionPool;
use TYPO3\CMS\Core\Database\Query\Expression\ExpressionBuilder;
use TYPO3\CMS\Core\Resource\File;
Expand Down Expand Up @@ -292,13 +293,13 @@ protected function migrateField($table, $row)
$queryBuilder = $connectionPool->getQueryBuilderForTable('sys_file');
$existingFileRecord = $queryBuilder->select('uid')->from('sys_file')->where($queryBuilder->expr()->eq(
'missing',
$queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)
$queryBuilder->createNamedParameter(0, Connection::PARAM_INT)
), $queryBuilder->expr()->eq(
'sha1',
$queryBuilder->createNamedParameter($fileSha1, \PDO::PARAM_STR)
), $queryBuilder->expr()->eq(
'storage',
$queryBuilder->createNamedParameter($storageUid, \PDO::PARAM_INT)
$queryBuilder->createNamedParameter($storageUid, Connection::PARAM_INT)
))->executeQuery()->fetch();

// the file exists, the file does not have to be moved again
Expand Down Expand Up @@ -368,7 +369,7 @@ protected function migrateField($table, $row)
$queryBuilder->update($table)->where(
$queryBuilder->expr()->eq(
'uid',
$queryBuilder->createNamedParameter($row['uid'], \PDO::PARAM_INT)
$queryBuilder->createNamedParameter($row['uid'], Connection::PARAM_INT)
)
)->set($this->fieldsToMigrate[$table], $i)->executeStatement();
}
Expand Down
3 changes: 2 additions & 1 deletion Classes/Updates/MigrateSettings.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@

namespace Bobosch\OdsOsm\Updates;

use TYPO3\CMS\Core\Database\Connection;
use TYPO3\CMS\Core\Database\ConnectionPool;
use TYPO3\CMS\Core\Database\Query\QueryBuilder;
use TYPO3\CMS\Core\Utility\GeneralUtility;
Expand Down Expand Up @@ -106,7 +107,7 @@ public function executeUpdate(): bool
->where(
$queryBuilder->expr()->eq(
'uid',
$queryBuilder->createNamedParameter($record['uid'], \PDO::PARAM_INT)
$queryBuilder->createNamedParameter($record['uid'], Connection::PARAM_INT)
)
)->set('pi_flexform', $newXml)->executeStatement();

Expand Down

0 comments on commit fbe6a00

Please sign in to comment.