You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Extbase repositories come with a magic :php:__call() method to allow calling
the following methods without implementing them:
:php:findBy[PropertyName]($propertyValue)
:php:findOneBy[PropertyName]($propertyValue)
:php:countBy[PropertyName]($propertyValue)
These have now been marked as deprecated, as they are "magic", meaning
that proper IDE support is not possible, and other PHP-related tool
functionality such as PhpStorm.
In addition, it is not possible for Extbase repositories
to build their own magic method functionality as the logic is already
in use.
Impact
As these methods are widely used in almost all Extbase-based extensions,
they are marked as deprecated in TYPO3 v12, but will only trigger a deprecation
notice in TYPO3 v13, as they will be removed in TYPO3 v14.
This way, migration towards the new API methods can be made without
pressure.
Affected installations
All installations with third-party extensions that use those magic methods.
Migration
A new set of methods without all the downsides have been added:
The naming of the methods follows those of doctrine/orm and only
:php:count() differs from the formerly :php:countBy(). While all magic
methods only allow for a single comparison (propertyName = propertyValue),
those methods allow for multiple comparisons, called constraints.
findBy[PropertyName]($propertyValue) can be replaced with a call to findBy:
Deprecation: #100071 - Magic repository findBy() methods
https://docs.typo3.org/c/typo3/cms-core/master/en-us/Changelog/12.3/Deprecation-100071-MagicRepositoryFindByMethods.html
.. include:: /Includes.rst.txt
.. _deprecation-100071-1677853787:
========================================================
Deprecation: #100071 - Magic repository findBy() methods
See :issue:
100071
Description
Extbase repositories come with a magic :php:
__call()
method to allow callingthe following methods without implementing them:
findBy[PropertyName]($propertyValue)
findOneBy[PropertyName]($propertyValue)
countBy[PropertyName]($propertyValue)
These have now been marked as deprecated, as they are "magic", meaning
that proper IDE support is not possible, and other PHP-related tool
functionality such as PhpStorm.
In addition, it is not possible for Extbase repositories
to build their own magic method functionality as the logic is already
in use.
Impact
As these methods are widely used in almost all Extbase-based extensions,
they are marked as deprecated in TYPO3 v12, but will only trigger a deprecation
notice in TYPO3 v13, as they will be removed in TYPO3 v14.
This way, migration towards the new API methods can be made without
pressure.
Affected installations
All installations with third-party extensions that use those magic methods.
Migration
A new set of methods without all the downsides have been added:
findBy(array $criteria, ...): QueryResultInterface
findOneBy(array $criteria, ...):object|null
count(array $criteria, ...): int
The naming of the methods follows those of
doctrine/orm
and only:php:
count()
differs from the formerly :php:countBy()
. While all magicmethods only allow for a single comparison (
propertyName
=propertyValue
),those methods allow for multiple comparisons, called constraints.
findBy[PropertyName]($propertyValue)
can be replaced with a call tofindBy
:.. code-block:: php
findOneBy[PropertyName]($propertyValue)
can be replaced with a call tofindOneBy
:.. code-block:: php
countBy[PropertyName]($propertyValue)
can be replaced with a call tocount
:.. code-block:: php
.. index:: PHP-API, NotScanned, ext:extbase
The text was updated successfully, but these errors were encountered: