Должен ли Extbase Persistence TypoScript всегда загружаться глобально? - PullRequest
0 голосов
/ 10 декабря 2018

Представьте себе многопользовательскую установку 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 во всем мире.

1 Ответ

0 голосов
/ 18 мая 2019

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

...