TYPO3为什么在Core中没有页面模型?

时间:2020-01-16 12:39:53

标签: typo3 extbase typo3-9.x

当我使用核心 PageRepository (TYPO3 \ CMS \ Frontend \ Page \ PageRepository)时,使用功能 getPage (),我得到一个数组返回的,而不是对象,就像其他许多核心存储库一样。 然后,我必须为自己构建一些“魔术”,以便注入 类别 页面作者作为要在流体模板中使用的对象 。 问题是完全不提供页面模型是一种“设计决定”吗?

3 个答案:

答案 0 :(得分:0)

在Extbase上下文中不使用PageRepository,因此这里没有Domain建模,因为它在后端上下文中以及在底层内核执行非常低的情况下(在没有Extbase的情况下)使用很多,否则开销很大。启动Extbase。 您可以简单地将pages表映射到您自己的模型上,并在扩展中使用Extbase时以这种方式使用适当的Domain建模。核心不为页面afaik提供Extbase域模型。

答案 1 :(得分:0)

出于多种原因,发布Extbase Page域模型没有多大意义:

  1. TYPO3本身不需要它。
  2. 该模型必须非常通用,因为它不了解您的域要求。
  3. 由于这个原因,该模型对于任何领域要求基本上都是太通用了,这反过来又需要您添加自己的Page域模型。

是的,关于已发运的FrontendUser和相关类也可以这样说,并且可以说出于相同的原因应该删除这些类。

答案 2 :(得分:0)

您无需在数组外构建对象即可在Fluid中使用。

您也可以将数组传递给视图。您将像使用对象一样使用.表示法。

例如在控制器中:

$this->view->assign('page', $page);

流体:

{page.title}