Typo3 Extbase持久性脚本是否应始终全局加载?

Typo3 Extbase持久性脚本是否应始终全局加载?,typo3,extbase,typo3-extensions,Typo3,Extbase,Typo3 Extensions,设想一个多站点的TYPO3安装。其中一个站点使用扩展(加载扩展的键入脚本),该扩展修改config.tx\u extbase.persistence.classesconfig forGeorgRinger\News\Domain\Model\News。其他网站也使用新闻,但不包括进行修改的扩展 您将遇到的问题是,数据映射是全局缓存的——因此在清除缓存后,它取决于将首先调用哪个站点,并缓存其extbase持久性配置,这可能会破坏其他站点的功能 为了解决这个问题,我开始将与DataMapper相关

设想一个多站点的TYPO3安装。其中一个站点使用扩展(加载扩展的键入脚本),该扩展修改
config.tx\u extbase.persistence.classes
config for
GeorgRinger\News\Domain\Model\News
。其他网站也使用新闻,但不包括进行修改的扩展

您将遇到的问题是,数据映射是全局缓存的——因此在清除缓存后,它取决于将首先调用哪个站点,并缓存其extbase持久性配置,这可能会破坏其他站点的功能

为了解决这个问题,我开始将与DataMapper相关的打字脚本移动到一个单独的打字脚本文件
ExtbasePersistence.TypoScript
,并将其全局加载到ext_localconf.php中:

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTypoScript('myext','setup','')

我的问题是:为什么这不是最好的做法,并在每一个扩展中都这样做?或者我做错了什么,我似乎是唯一一个遇到这个问题的人


编辑:在我看来,这意味着核心扩展(如
extbase
)也必须全局加载与DataMapper相关的打字脚本。

extbase确实通过

这个文件是由TYPO3在全局范围内自动加载的,据我所知,这也是最佳实践


每个扩展都可以添加此文件,请参见

对于我来说,DataMap缓存似乎有缺陷。如果你问我的话,在打字脚本中处理类映射本身就是一件坏事,因为它不应该依赖于要加载的类的站点上下文。这些事情应该通过全局配置来处理,而这些配置不能由多个页面上的编辑器更改