Fluid Tipp 12: Alias Namespaces

ViewHelper Namespaces können sich ähnlich wie templateRootPaths überlagern. Das kann man z.B. sinnvoll nutzen, um verschiedene Namespaces zu kombinieren oder um ViewHelper von einem anderen Package zu bevorzugen. Dies kann man global oder auch auf Templatebasis machen. In unserem Fluid Tipp 10 ist der globale Import beschrieben.

<!-- Registering multiple namespaces with same alias -->
{namespace f=Vendor\MyFluidOverrides\ViewHelpers}
{namespace my=Vendor\MyExtensionOne\ViewHelpers}
{namespace my=Vendor\MyExtensionTwo\ViewHelpers}

Der ViewHelper-Namespace "f", der in der Fluid-Extension gesetzt wird, wird hier durch den eigenen PHP-Namespace "Vendor\MyFluidOverrides\ViewHelpers" überlagert. Alle schon in Fluid bestehenden Klassen die hier mit gleichem Namen erzeugt werden, überschreiben die entsprechende Klasse von Fluid.

Der Namespace "my" wird hier mit zwei unterschiedlichen PHP-Namespaces eingesetzt. Das bedeutet, dass man eine Art Fallback oder anders ausgedrückt, eine Überschreibung vorliegen hat. Der zweite eingesetzte PHP-Namespace "Vendor\MyExtensionTwo\ViewHelpers" dient als erste Anlaufstelle. Wird dort keine entsprechende Klasse gefunden, wird im ersten PHP-Namespace "Vendor\MyExtensionOne\ViewHelpers" nachgeschaut. Umgekehrt kann man die Schlussfolgerung ziehen, dass ViewHelper, die in beiden Namespaces vorkommen, immer vom zuletzt definierten PHP-Namespace verwendet werden.

Hat Dir der Artikel gefallen?