Должен ли Extbase Persistence TypoScript всегда загружаться глобально?
Представьте себе многопользовательскую установку 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 глобально.
0 ответов
Extbase загружает это глобально через https://github.com/TYPO3/TYPO3.CMS/blob/9.5/typo3/sysext/extbase/ext_typoscript_setup.typoscript
Этот файл автоматически загружается TYPO3 в глобальном масштабе, насколько я знаю, это также лучшая практика.
Каждое расширение может добавить этот файл, см. https://docs.typo3.org/typo3cms/CoreApiReference/ExtensionArchitecture/FilesAndLocations/Index.html.