Должен ли Extbase Persistence TypoScript всегда загружаться глобально?

Представьте себе многосайтовую установку TYPO3. Один из этих сайтов использует расширение (загружает TypoScript расширения), которое изменяет конфигурацию config.tx_extbase.persistence.classes для GeorgRinger\News\Domain\Model\News. Другие сайты также используют Новости, но без этого расширения, которое вносит изменения.

Проблема, с которой вы столкнетесь, заключается в том, что карты данных кэшируются глобально, поэтому после очистки кеша зависит, какой сайт будет вызываться первым, и его конфигурация сохраняемости extbase будет кэширована, что может нарушить функциональность других сайтов.

Чтобы обойти эту проблему, я начал перемещать TypoScript, связанный с DataMapper, в отдельный файл 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) ДОЛЖНЫ загружать свой TypoScript, связанный с DataMapper, глобально.


person smichaelsen    schedule 10.12.2018    source источник
comment
Мне кажется, что кэш DataMap глючит. Такая обработка карт классов в TypoScript сама по себе плохая вещь, если вы спросите меня, потому что она не должна зависеть от контекста сайта, какой класс загружать. С этими вещами лучше обращаться через глобальную конфигурацию, которую редакторы не могут изменить на нескольких страницах.   -  person Euli    schedule 10.12.2018


Ответы (1)


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#reserved-file-names

person Daniel    schedule 18.05.2019