Zum Inhalt springen

Wie soll man bestehende Extensions einbinden/erweitern

Erstellt am 17. November 2004 · 3 Antworten · letzte Antwort am 23. November 2004

Tags: Frage

NCoDer ·

Ich möchte etliche Funktionen der sr_feedit Extension die schon eine Erweiterung der cw_feedit von Sebastian Faulhaber ist nutzen, viele aber modifizieren (CSS Styles etc.)

Gibt es allgemeine Richtlinien, wie man das tun soll?

Ich könnte mir natürlich einfach den Code umkopieren und dann in eine eigene Klasse schreiben etc. weiß aber nicht, ob das so "politisch" korrekt ist, da ich dann ja anderen Code als meinen "ausgebe". Wenn ich eine Erweiterungsklasse schreibe, bin ich aber evtl. von Änderungen in der Extension betroffen.

Ensis ·

Hallo NCoDer,

bin durch deine Antwort auf einen meiner älteren Threads auf diesen hier gestoßen. Leider ist dieses Forum im Bereich der fortgeschrittenen Fragen ( z.B. Extension-Entwicklung ) immer noch nicht sehr aktiv und ich bin deswegen länger nicht mehr hier gewesen. Aber vielleicht können wir da ja was dran ändern. Ich bin halt ein Optimist. 🙂

Aber zu deinem Posting. Ich habe gerade das gleiche Problem, da ich eine andere Extension zu etwa 70% für eine neue nutzen möchte. Rein moralisch ( oder rechtlich, je nachdem ), ist das das Rauskopieren der interessanten Bereiche kein Problem. Alle Extensions sind ja OpenSource und du weist in der Beschreibung der Extension dann einfach daraufhin, daß du auf der Arbeit des ursprünglichen Autors aufgebaut hast.

Technisch halte ich das aber nicht für die schönste Lösung. Viel interessanter ist doch das Erweitern der ursprünglichen Klasse. Da es die Extension im Typo3 - Repository ja in jeder bisher verfügbaren, hochgeladen Version noch zum runterladen gibt, würde ich mir um die Versionsprobleme nicht so viel Sorgen machen. Schreibe in die Anleitung, daß deine Extended Extension z.B. nur zu sr_feedit 0.1.1 kompatibel ist. Kommt eine neue Version raus, kannst du in Ruhe testen und dann Änderungen ( falls nötig ) vornehmen.Wäre ja schade, auf Features der Basis zu verzichten, da sich die Änderungen an einer Extended eigentlich recht einfach gestalten, während das nachträgliche Einarbeiten neuer Features in eigenen Code ziemlich mühselig ist.

Denk an die Dependencies in der ext_emconf.php. Leider unterstützt Typo3 noch keine versionsabhängigen Dependencies. Wäre mal ein Vorschlag für die Dev-List.

Gruss
Ensis

P.S.: Mit PHP5 wird eine saubere Implementierung von Extended Extensions natürlich deutlich einfacher.

NCoDer ·

Mit PHP5 wird eine saubere Implementierung von Extended Extensions natürlich deutlich einfacher

Kannst du mir das erläutern?

Gruß,
NCoDer

Ensis ·

Klar. Ich halt zwar recht viel von PHP, aber das Objekt-Modell von PHP4 wurde dem Begriff OOP nicht gerecht. Mit PHP5 ändert sich das. Gerade für Erweiterungen existierender Software und große Softwareprojekte ( was Typo3 unzweifelhaft ist 🙂 ) ist OOP ja nun prädestiniert. Leider ist die Dokumentation noch nicht mal ansatzweise vorhanden. Einen Überblick über die Änderungen kriegst du aber z.B. hier:

http://cvs.php.net/co.php/ZendEngine2/ZEND_CHANGES

und sehr gut beschrieben unter:

http://www.sitepoint.com/article/coming-soon-webserver-near