想象一个多站点TYPO3安装。这些站点之一使用扩展程序(加载扩展程序的TypoScript)来修改config.tx_extbase.persistence.classes
的{{1}}配置。其他站点也使用新闻,但不包括该扩展程序进行的修改。
您将遇到的问题是DataMap是全局缓存的-因此在清除缓存后,它取决于将首先调用哪个站点,并将缓存其extbase持久性配置,这有可能破坏其他站点的功能。 / p>
为解决此问题,我开始将与DataMapper相关的TypoScript移到单独的TypoScript文件GeorgRinger\News\Domain\Model\News
中,并将其全局加载到ext_localconf.php中:
ExtbasePersistence.typoscript
我的问题是:为什么这不是最佳实践,并且在每个扩展中都没有?还是我似乎是唯一遇到该问题的人,这是我做错了什么?
编辑:从我的角度来看,这意味着核心扩展(例如\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTypoScript('myext', 'setup', '<INCLUDE_TYPOSCRIPT: source="FILE:EXT:myext/Configuration/TypoScript/ExtbasePersistence.typoscript">');
)也必须全局加载其与DataMapper相关的TypoScript。
答案 0 :(得分: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#reserved-file-names