Представьте себе многопользовательскую установку TYPO3.Один из этих сайтов использует расширение (загружает TypoScript расширения), которое изменяет конфигурацию config.tx_extbase.persistence.classes
для GeorgRinger\News\Domain\Model\News
.Другие сайты также используют Новости, но без включения этого Расширения, выполняющего модификацию.
Проблема, с которой вы столкнетесь, заключается в том, что DataMaps кэшируются глобально - поэтому после очистки кэша зависит, какой сайт будет вызываться первым иего конфигурация сохраняемости в extbase будет кэширована, возможно, нарушая функциональность других сайтов.
Чтобы обойти эту проблему, я начал перемещать связанный с DataMapper TypoScript в отдельный файл TypoScript ExtbasePersistence.typoscript
и загружать его глобально в ext_localconf.php:
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTypoScript('myext', 'setup', '<INCLUDE_TYPOSCRIPT: source="FILE:EXT:myext/Configuration/TypoScript/ExtbasePersistence.typoscript">');
Мой вопрос: почему это не лучшая практика и не делается в каждом расширении?Или что я делаю не так, что мне кажется, что я единственная, кто сталкивается с этой проблемой?
Редактировать: С моей точки зрения это означало бы, что также основные расширения (такие как extbase
) ДОЛЖНЫ загружать свои DataMapperсвязанный TypoScript во всем мире.