typo3-rector
typo3-rector copied to clipboard
Deprecation: #102793 - PageRepository->enableFields
Deprecation: #102793 - PageRepository->enableFields
https://docs.typo3.org/c/typo3/cms-core/main/en-us/Changelog/13.0/Deprecation-102793-PageRepositoryEnableFields.html
Deprecation: #102793 - PageRepository-\>enableFields
See 102793
Description
One of the common PHP APIs used in TYPO3 Core for fetching records is
\TYPO3\CMS\Core\Domain\Repository\PageRepository
. The method
enableFields()
is used to enhance a database query with additional
restrictions such as filtering out versioned records from workspaces,
hidden database entries or scheduled database entries.
This method has been marked as deprecated in favor of a new method
getDefaultConstraints()
.
Impact
Calling the method will trigger a PHP deprecation warning.
Affected installations
TYPO3 installations with custom extensions using the method
enableFields()
of the PageRepository
class.
Migration
A new method called getDefaultConstraints()
has been introduced which
supersedes the old method. The new method returns an array of
CompositeExpression
objects, which can be used instead.
Before (TYPO3 v12)
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)
->getQueryBuilderForTable($tableName);
$constraints = GeneralUtility::makeInstance(PageRepository::class)
->enableFields($tableName);
$queryBuilder
->select('*')
->from($tableName);
->where(QueryHelper::stripLogicalOperatorPrefix($constraints);
$queryBuilder->execute();
After (TYPO3 v13)
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)
->getQueryBuilderForTable($tableName);
$constraints = GeneralUtility::makeInstance(PageRepository::class)
->getDefaultConstraints($tableName);
$queryBuilder
->select('*')
->from($tableName);
if ($constraints !== []) {
$queryBuilder->where(...$constraints);
}
$queryBuilder->execute();
Database, Frontend, PHP-API, NotScanned, ext:core