Deprecation: #97435 - Usage of SiteLanguageAwareTrait to denote site language awareness¶
See forge#97435
Description¶
The TYPO3\CMS\Core\Site\SiteLanguageAwareTrait
should not be used as
means to denote a class as aware of the site language anymore. Instead, the
TYPO3\CMS\Core\Site\SiteLanguageAwareInterface
should be implemented for
this purpose. The trait is an internal implementation and should not be used
in user land code.
Impact¶
If you are currently using the SiteLanguageAwareTrait
to denote a class
as aware of the site language, you should implement the
SiteLanguageAwareInterface
instead.
Affected Installations¶
All installations where the SiteLanguageAwareTrait
is used to denote
a class as aware of the site language.
Migration¶
Change classes that use the SiteLanguageAwareTrait
but not the
corresponding interface to implement the interface. Replace the usage of the
trait with an own trait, or implement the interface methods directly in the
class.
Example before the migration:
use TYPO3\CMS\Core\Site\SiteLanguageAwareTrait;
class MyClass
{
use SiteLanguageAwareTrait;
}
Example after the migration:
use TYPO3\CMS\Core\Site\SiteLanguageAwareInterface;
use TYPO3\CMS\Core\Site\Entity\SiteLanguage;
class MyClass implements SiteLanguageAwareInterface
{
protected SiteLanguage $siteLanguage;
public function setSiteLanguage(SiteLanguage $siteLanguage)
{
$this->siteLanguage = $siteLanguage;
}
public function getSiteLanguage(): SiteLanguage
{
return $this->siteLanguage;
}
}