Zum Inhalt springen

Library Extension

Erstellt am 17. Mai 2009 · 1 Antwort · letzte Antwort am 18. Mai 2009

Tags: Frage

den1982 ·

Hallo,

ich schreibe mir momentan für meine Seite mehrere Extensions. Alle benutzen teilweise gleiche Funktionen (Daten umrechnen, Werte auslesen, Mails verschicken usw.)

Dafür würde ich gerne eine Extension (eine Art Library Extension) erstellen, deren PHP Datei ich nur per Include einbinden muss oder deren Klasse ich nur instanzieren muss und kann dann auf meine statischen Funktionen zugreifen. Ich brauche auch kein Zugriff auf die Datenbank oder ähnliches.

Ich könnte auch irgendwo mir ein Verzeichnis machen, wo alle Extensions gemeinsam drauf zugreifen, nur fände ich eine Extension die automatisch mit installiert wird, wenn eine der anderen installiert wird, schöner. Außerdem könnte sich da ja der Pfad mal ändern und es ist etwas schwerer zu installieren für einen Anwender (muss ja wissen wo er sie hin kopieren muss), als wenn man einfach nur die Extension zu installieren hätte.

Im Kickstarter finde ich dazu keine Möglichkeit. Wie würde ich so eine Extension mit Bibliotheks Funktionen ab saubersten erstellen.

Danke schonmal für Tips/Infos im Voraus.

Gruß
Dennis

Tob1 ·

Hey,

ich habe ein ähnliches Problem. Ich möchte auch eine Library erstellen, nur soll diese nach dem singleton pattern nur einmal global instantiiert werden und dann von allen Frontend Plugins genutzt werden.

Dimitry Dulepov - Typo3 Extension Development:

"Extensions that belong to the Frontend category provide funtionality related to the FE. It does not mean that they generate website output. Typically, extensions from the FE category extend Fe functionality in other ways "...

Die library sollte also als Typ eine FE extension sein. Services ist wohl was anderes, auch wenn es irgendwie passend klingt. Wie man diese FE library aber am besten initiiert und dann in andere Extensions einbindet, bin ich mir nicht sicher.

Wohl irgendwie so in der library:

final class tx_tbwhoisonline_renderer_fe extends tslib_pibase {
private static	$instance=null;
	public static function getInstance() {
		if(self::$instance == null) {
			self::$instance = new tx_tbwhoisonline_renderer_fe();
		}
		return self::$instance;
	}
}

Quelle: http://nerdcenter.de/typo3-frontend-renderer-als-singleton/

Wie genau der Aufruf in den einzelnen NutzerExtensions aussieht, weiß ich leider nicht.

Problem ist auch, die library müsste ja vor allen anderen Extensions geladen werden.
Dazu muss man glaube ich bei allen FE Plugin Extensions in der emconf 'priority' => 'bottom' und in der library 'priority' => 'top' zu setzen ?!

Ich bin da auch schon länger am knobeln, vielleicht hat jemand eine Lösung?