Eine vergessene Funktion: substituteMarkerArrayCached

TYPO3 stellt diverse Funktionen zur Verfügung, die die Erstellung von Extensions deutlich vereinfachen. Dabei gibt es auch einige, die selten genutzt werden, obwohl sie bestimmte Probleme deutlich vereinfachen.

Eine dieser Funktionen ist substituteMarkerArrayCached. Sie dient dem vereinfachten Austausch von Markern, Subparts und sogenannten Wrapped Subparts. Marker lassen sich zugegebenermaßen auch über substituteMarkerArray, Subparts über substituteSubparts austauschen. Auf die Vorteile dieser Funktion werde ich im Nachfolgenden kurz eingehen.

Zunächst vermag sie, wie bereits angedeutet Wrapped Subparts auszutauschen (soweit ich das bisher gesehen habe, ist es überhaupt die einzige). Mit solchen Wrapped Subparts ist es möglich, Elemente im Template in durch PHP zu umrahmen, was sich inbesondere bei Verlinkungen auszahlen kann. Was das bedeutet, sollen folgende Codeschnipsel andeuten:

<!-- ###LINK_ITEM### -->Weitere Informationen<!-- ###LINK_ITEM### -->

Nun lässt sich mit nachfolgendem Code bequem ein Link um das „Weitere Informationen“ setzen:

	$wrappedSubparts['###LINK_ITEM###'] = explode('|', $this->pi_linkTP_keepPIvars('|', 
        array('function' => 'var'), $value));
	$content .= $this->cObj->substituteMarkerArrayCached
        ($template,$markerArray, $subparts, $wrappedSubparts);

Wie gezeigt werden im Gegensatz zu normalen Markern und Subparts nicht einzelne Inhalte, sondern jeweils zwei übergeben, die vor bzw. hinter dem Elemente eingefügt werden. Da substituteMarkerArrayCached nicht allzu verbreitet ist, wurde diese Funktionalität bisher relativ oft über die Kombination von getSubpart und substituteSubpart realisiert. Dies führt nicht zuletzt auch zu deutlich unübersichtlicherem und unlesbarerem Code.

Außerdem hilft die Funktion auch punktuell die Performance der Verarbeitung der Strings zu verbessern. Dies wird über Überprüfung und Caching des übergebenen Template-Code und den Daten-Arrays vor der Verarbeitung gewährleistet. Dies sollte sicher nicht überbewertet werden, kann sich bei konsequenter Anwendung aller Caching-Mechanismen jedoch auch positiv auswirken.

Insgesamt wird mit substituteMarkerArrayCached ein Werkzeug an die Entwicklerhand gegeben, die das Leben durchaus erleichtern kann. Ein genauerer Blick kann sich also durchaus lohnen!

PS: Wir sind durchaus offen für weitere vorstellungswürdige Funktionen, die in TYPO3 versteckt schlummern und auf ihre Nutzung warten.

Michael Türk
Seit 2007 entwickelt und betreut Michael Türk Web-Applikationen und vorrangig Online-Shops für Flagbit. Er ist in diversen Magento Hackathons engagiert und Gründungsmitglied des Firegento-Vereins. Außerdem veranstaltet er als Zeremonienmeister das regelmäßig stattfindende E-Commerce Forum in Karlsruhe.

Hinterlasse einen Kommentar

3 Kommentare auf "Eine vergessene Funktion: substituteMarkerArrayCached"

Benachrichtige mich zu:
avatar

Sortiert nach:   neuste | älteste | beste Bewertung
trackback
10 Jahre 3 Monate her

Eine vergessene Funktion: substituteMarkerArrayCached » TYPO3-Sco…

TYPO3 stellt diverse Funktionen zur Verfügung, die die Erstellung von Extensions deutlich vereinfachen. Dabei gibt es auch einige, die selten genutzt werden, obwohl sie bestimmte Probleme deutlich vereinfachen. Eine dieser Funktionen ist substituteMar…

Dmitry Dulepov
Gast
Dmitry Dulepov
10 Jahre 3 Monate her
Kai
Gast
Kai
10 Jahre 3 Monate her

Don’t use this function! Dmitry explains the cons in detail on his page. You can easily do everything that substituteMarkerArrayCached does with your own php function.

wpDiscuz
Weitere Beiträge zum Thema
eval is evil – Stimmt das?
Progressive Web Apps: Nichts für kleine und mittlere Unternehmen (KMU)?
Icon für verschiedene Zustände der Extension-Records (z.B. versteckt / hidden)
Lokale Anker und RealURL