Werbung
Mittwoch, 03 April 2013 16:11

Das neue Joomla Framework

Geschrieben von

Während den letzten Monaten haben sich die Joomla Platform Entwickler Gedanken gemacht, wie es mit dem Projekt weiter gehen könnte. Eines der Ziele für dieses Jahr war es, das Namespacing (Objektorientierte Programmierung) einzuführen. Als die Arbeiten schon weit fortgeschritten waren, stellte sich heraus, dass sich die Abwärtskompatibilität viel schwieriger gestaltet, als ursprünglich angenommen.

Die Folge wäre gewesen, dass das Joomla CMS die Platform Version 13.1 für einige Zeit gar nicht hätte einsetzen könnnen, wenn das Namespacing in dieser Version bereits eingeführt worden wäre.

Nach einer längeren Diskussion sowohl intern, wie auch mit Entwicklern aus der Community, hat man sich dazu entschlossen, die Chance zu Nutzen, um einige Änderungen an der Platform vorzunehmen.

Namenswechsel auf das Joomla Framework

Da die Einführung des Namespacing und weitere Optimierungen derart grosse Veränderungen mit sich bringen, haben wir beschlossen, die Joomla Platform wieder in seinen ursprünglichen Namen Joomla Framework umzunennen. (so wie der Name vor dem Erscheinen von Joomla 1.6 im 2011 war).

Der Wechsel des Namens ist darum wichtig, damit es eine klare Abgrenzung zwischen dem eigentlichen Motor mit dem das Joomla CMS angetrieben wird (was die Joomla Platform bisher ist) zieht und mit den Bibliotheken, mit denen die PHP Community alle mögliche Arten von Anwendungen drauf aufbauen können.

Veröffentlichung mit dem Composer (php Paketierungstool)

Der einfachste Weg, heute zu einer aktuellen Joomla Version zu kommen, ist das herunterladen der Pakete auf der Downloadseite. Hingegen ist es sehr schwierig, eine Joomla Platform in ein bestehendes Softwareprojekt zu integrieren. Die PHP Community hat verschiedene Möglichkeiten, Code-Bibliotheken zu verteilen. Die Verteilung mit PEAR ist ja schon seit einigen Jahren bekannt. Seit kurzem gibt es eine einfachere Methode, die Bibliotheken mit einem Composer zu verteilen, der sich einer steigenden Beliebtheit erfreut.

Das neue Joomla Framework soll mittels diesem neuen Composer verteilt und installiert werden können. Die entsprechenden Pakete findet man auf Packagist.org.

Eigenständigere Pakete

Gleichzeitig mit den Veränderungen und der Verteilung des Joomla Frameworks mit dem Composer, sollen auch Schritte unternommen werden, möglichst viele Pakete so eigenständig wie möglich zu gestalten. D.h. mit einem absoluten Minimum an Abhängigkeiten zu anderen Bibliotheken. Dies ermöglicht, dass man:

a) nur den Code installieren kann, den man für seine Anwenungen oder für das Joomla CMS auch wirklich braucht; und 

b) nur den Teil des Codes aktualisieren kann, der eine Aktualisierung braucht

Neue Mailing Liste

Wir haben die aktuelle Joomla Platform Mailingliste geschlossen und die alte Joomla Framework Mailliste aus dem Jahr 2009 wieder in Betrieb genommen.

Ein neues Code Verzeichnis

Für das neue Joomla Framework wurde bereits ein neues Code-Verzeichnis erstellt.

Das aktuelle Joomla Platform Code-Verzeichnis wird (demnächst) als Version 13.1 markiert und der Code wird als letzte offizielle Joomla Platform Version eingefroren. Das Verzeichnis bleibt auch in Zukunft öffentlich zugänglich. Das Melden von Fehlern oder Problemen zur dieser Version wird jedoch nicht länger möglich sein. Jede Art von Code-Übermittlung (Pull Request) wird eingestellt.

Semantische Versionierung der Pakete

Die alte Joomla Platform hatte eine fortlaufende Nummerierung basierend auf dem Kalenderjahr. Diese einfache Art der Nummerierung erwies sich mit der Zeit aber als etwas fehleranfällig. Das neue Joomla Framework wird sich, wie schon das Joomla CMS, an der semantischen Versionsnummerierung orientieren.

Das heisst, dass die Nummerierung der neuen Joomla Framework Paketversionen neu beginnt.

Die Version 1.0 des neuen Joomla Frameworks wird als Initialversion unter der GPL Lizenz veröffentlicht. Die Entwickler können die neue Version bereits mit dem Composer in ihre eigenen Software-Projekte integrieren.

Wenn alles nach Plan läuft, kann die PHP Community den Code der Version 2.0 dann unter der LGPL Lizenz beziehen. Im Moment ist noch unklar, wann das genau sein wird. Weil der Erfolg der laufenden Verhandlungen hängt u.a. auch von den Gesprächen unserer Juristen ab. 

Neue Dokumentation

Wir bieten im neuen Joomla Framework Verzeichnis, auf Basis von phpDocumentor2, eine sich selber aktualisierende API-Dokumentation an.

Bei jeder Übermittlung von neuem Code in das Haupt-Verzeichnis (push to Master), aktualisiert sich die API-Dokumentation von selber.

Zudem wird das alte Joomla Platform Handbuch, nach jedem Paket entsprechend, in einzelne README Dateien auffgesplittert. Damit werden die Informationen dort abgelegt, wo sie gebraucht werden und sie werden viel leichter gefunden.

Neue Testverfahren

Die Komponenten-Tests (Unit Tests) sind jeweils im Ordner /Tests/ bei jedem Paket zu finden. Diese laufen völlig eigenständig. Zusammen mit der Dokumentation können diese Tests pro Paket an einem Ort ausgeführt werden.

Rückführung der Platform ins CMS

Das Joomla CMS wird nicht sofort mit dem neuen Joomla Framework Code laufen. Dies würde in Joomla 3.1 nur zu grosser Verwirrung und vielen Problemen führen. Aber dort wo es möglich ist, wird der eingefrorene Joomla Platform Code mit eingebaut. Das Joomla Bug Squad Team wird sich auch weiterhin um die Pflege des Platform Codes kümmern, so wie sie es bisher gemacht hat. Neu aber nur noch an einem Ort, anstatt wie bisher an zwei Orten (so werden Doppelspurigkeiten behoben).

Ab der nächsten Version (ab Joomla 3.2) kann mit den folgenden Veränderungen rechnen:

a) Im Ordner libraries/cms werden CMS spezifische Klassen abgelegt. An der Ordnerbezeichnung wird deutlich, dass es sich um "CMS eigene Sachen" handelt.

b) Im Ordner libraries/joomla werden die Bibliotheken der externen Anbieter und der Platform Code drin bleiben. Dieser wird vom Joomla CMS Team gepflegt und weiter benötigt, um das aktuelle Joomla CMS am Laufen zu halten.

c) Der Ordner libraries/legacy mit all seinen Klassen wird in der nächsten Hauptversion des CMS (vermutlich 3.5) entfernt. Dazu gehören alle Proxies-Klassen die im Zuge der neuen Autoloader-Konventionen hinzugefügt wurden. Die Erweiterungen-Entwickler sollten darauf achten, dass sie diese Klassen in ihren Anwendungen künftig nicht mehr verwenden resp. baldmöglichst entfernen.

Die Zukunft des neuen Joomla Frameworks

Das ist unsere Vision für das neue Joomla Framework:

1. Durch die Verfügbarkeit des Joomla Framework mit dem Composer, soll die PHP Community, die sonst keinen Bezug zu Joomla haben, dazu animiert werden, mit dem Framework-Code herum zu experimentieren.

2. Dank dem, dass das Framework in viele eigenständige Pakete aufgeteilt ist, wird es möglich, dass sich diese Pakete unterschiedlich schnell entwickeln können und dass das ganze Framework nicht mehr ein einziger Code-Klumpen ist.

3. Weil der veraltete Platform Code im CMS verbleibt, können wir uns voll darum kümmern, Dinge zu verbessern. Anstatt ständig daran denken zu müssen, ob der neue Code die Funktionalität des aktuellen CMS beeinträchtigt oder nicht.

4. Die Verwendung des Composers und die Umsetzung mit modernen Entwickler-Standards helfen uns, neue Entwickler für das Joomla Projekt, einschliesslich dem CMS, zu gewinnen.

Die Zukunft für das Joomla CMS

Obwohl das neue Framework nicht sofort ins ins CMS integriert wird, gibt es einen kurz-, mittel- und langfristigen Nutzen für das CMS.

Das Aufteilen des Frameworks in kleine, eigenständge Pakete, ermöglichen es, nur die Teile zu aktualisieren, die gerade nötig sind. Momentan ist es so, dass das CMS jeweils eine ganz bestimmte Platform Version eingebaut bekommt. Folglich können solche CMS Versionen einmal verbaute Platform Versionen nicht mehr erneuern. Wäre es nicht toll, wenn Joomla 2.5 und 3.0 mit derselben Platform Version funktionieren könnte? Das ist im Moment unmöglich. Dies soll aber, sofern alles wie geplant läuft, mit dem zukünftigen Framework möglich sein.

Sobald das CMS für eine technische Aktualisierung seiner Architektur bereit ist, kann man das Testen und Experimentieren mit den erarbeiteten Neuerungen aus dem Framework übernehmen.

Auch wenn in nächster Zeit ein paar Sachen underschiedlich laufen, heisst das nicht, das das CMS und das Framework nicht zusammen funktionieren werden. So arbeitet Chris Davenport jetzt schon hart an einem neuen Web Service Layer für das Joomla CMS. Dieser Layer baut direkt auf dem neuen Joomla Framework auf und erleichtert es so den CMS- und Erweiterungen-Entwicklern, sich in den neuen Strukturen zuercht zu finden. Projekte wie der neue Joomla Fehler Tracker, können ab heute beginnen mit dem neuen Framework zu arbeiten. Dies gilt ebenso für jeden Anwendungs- und Kommandozeilen-Entwickler der mit dem Joomla-Code arbeitet.

Letztendlich geht es darum, die Mission des gesamten Joomla Projekts, "eine flexible Plattform für das digitale Publizieren und Zusammenarbeiten anzubieten", zu erfüllen. Die Neuerungen mit dem Framework, gehen in grossen Schritten genau in diese Richtung.

Quelle: developer.joomla.org

Gelesen 5765 mal
BLOG COMMENTS POWERED BY DISQUS
Joomlainfo

Partner

Wir sagen danke an:
Bestes Joomla Hosting dem offiziellen Hosting-Partner und

Joomla Templatesdem offiziellen Template-Partner