应该始终在全球范围内加载Extbase Persistence TypoScript吗?

时间:2018-12-10 10:01:45

标签: typo3 extbase typo3-extensions

想象一个多站点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。

1 个答案:

答案 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