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.

Avatar
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.
3 Kommentare

Hinterlassen Sie einen Kommentar

Ihr Kommentar*

Name*
Website

Weitere Beiträge zum Thema
TYPO3 4.6 steht zum Download bereit
Zend-TwoLevels-Cache speichert Einträge unbegrenzt
Firefox 3.0 und TYPO3
Sicherheitslücken in TYPO3 Extensions