在 TYPO3 中,使用 extbase 和 fluid,a "widget" 的定义是什么

In TYPO3, with extbase and fluid, what is the definition of a "widget"

TYPO3 中的 "widget" 是什么?

我在创建扩展时遇到了一些挑战,我看到很多关于 "widgets" 做这个那个的参考。

不知道"widget"和"extension"是不是同义词。我不知道它是否是一种特殊的扩展,或者一个扩展是否包含多个小部件。

上周我可能花了 20-30 个小时阅读文档,而且我离我的目标非常近。请各位先生女士们,请教一下widget(在TYPO3中)到底是什么?

您可以查看 Flow 文档 definition of Widgets。主要结论是:

  1. Widget - 是一个特殊的 ViewHelper,用于 Fluid 模板。因此,您的扩展程序可以包含任意数量的小部件。
  2. Widget 必须包含自己的 Controller。因此,这与通常的 ViewHelper 不同,因为 ViewHelper 通常是无状态的,它们不参与 MVC 进程。但是 Widgets 可以包含一个状态并且它们是 MVC 的一部分,因此可以被视为 特殊插件 .
  3. 小部件绑定到调用者上下文。这意味着,如果您的 Widget 控制器查找 $this->settings,那么将从使用 Widget 的扩展中读取设置(这是我在 TYPO3 6.2 中的经验)。

因此,如您所见 - Widget 同时是 ViewHelper 和 Plugin。 Widget 的一个很好的例子是 f:widget.paginate - 它可以在任何扩展的 Fluid 模板中使用,同时它与 MVC 堆栈完全交互。