Должен ли 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.

Другие вопросы по тегам