Extbase Reflection Cache während Entwicklung deaktivieren

Manchmal kann der Extbase Reflection Cache während des Suchens eines lästigen Fehlers doch sehr nerven. Folgendermassen kann man ihn deaktivieren:

$GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations']['extbase_reflection']['backend'] = 't3lib_cache_backend_NullBackend';
$GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations']['extbase_object']['backend'] = 't3lib_cache_backend_NullBackend';

Natürlich sollte man nicht vergessen, ihn nachher wieder zu aktivieren.

Weitere nützliche Informationen zum TYPO3 Caching Framework sind im Wiki zu finden: http://wiki.typo3.org/Caching_framework

Inline Notation für Fluid Tags

In einem Fluid Template wird man ziemlich bald vor der Aufgabe stehen, Tags ineinander verschachtelt zu müssen.

wird dann zu

{f:image(src:'mein/pfad', alt: 'mein/alt/text')}

Nach dem gleichen Prinzip funktionieren auch komplexere Tags


this
that

Muss in der inline Notation folgendermassen geschrieben werden

{f:if(condition: '{what}', then: 'this', else: 'that')}

Einen eigenen View Helper für Fluid Templates erstellen

Fluid View Helper erben von der Klasse Tx_Fluid_Core_ViewHelper_AbstractViewHelper und brauchen zur Ausführung die Methode render():

class Tx_MyExt_ViewHelpers_TestViewHelper
	extends Tx_Fluid_Core_ViewHelper_AbstractViewHelper {

	/**
	 * @param string $text
	 * @return string
	 **/
	public function render($text='') {
		return $text;
	}
}

Der neue Helper legt man nun, den Namenskonventionen von Extbase entsprechend, im Ordner my_ext/Classes/ViewHelpers/ ab, in diesem Beispiel unter dem Namen TestViewHelper.php.

Apache VirtualDocumentRoot und TYPO3 Extension RealURL

Mit der von TYPO3 ausgelieferten .htaccess bekommt man beim Einsatz von RealURL und VirtualDocumentRoot in der Apache Konfiguration einen Internal Error 500. Dies ist aber einfach zu beheben, wenn man sich die Mühe macht und einen Blick in die .htaccess wirft, da wartet die Lösung nämlich nur darauf auskommentiert zu werden.

RewriteRule .* /index.php [L]

Vererbung mit addRootLineFields und levelfield

Will man ein ein zusätzliches Feld der Tabelle pages mit levelfield ansprechen, kann man es im Install Tool addRootLineFields hinzufügen. Ein meiner Meinung nach wesentlich eleganterer Weg ist die Verwendung einer eigenen Extension. Man fügt man das Feld in der  ext_localconf.php den TYPO3_CONF_VARS hinzu.

$GLOBALS['TYPO3_CONF_VARS']['FE']['addRootLineFields'] .= ',tx_myext_myfield';

Nun kann kann man auf das Feld z.B. folgendermassen zugreifen.

lib.test = TEXT
lib.test.data = levelfield:-1,tx_myext_myfield, slide

TYPO3 Autoloader verwenden

Seit Version 4.3 bietet TYPO3 einen Autoloader der sehr einfach einzusetzen ist. Um diesen zu verwenden, legt man ein Datei mit dem Namen ext_autoload.php im Verzeichnis der eigenen Erweiterung an. In dieser Datei machen wir nichts weiteres als ein assoziatives Array zurückzugeben.

Die grösste Fehlerquelle dabei ist, dass man bis TYPO3 6.0 darauf achten muss, den Schlüssel des assoziativen Arrays klein zu schreiben. Verwendet man den korrekten Klassennamen, also camel case, wird die Klasse nicht eingebunden.

$extensionPath = t3lib_extMgm::extPath('myext');
return array(
    'tx_myext_myclass' => $extensionPath . 'class.tx_myext_myclass.php'
);