Deutschland United States United Kingdom
ContentLion - Open Source CMS

Fortschritt Installerbau

Fortschritt Installerbau

Hier werde ich mal den Fortschritt des neuen Installers dokumentieren. EIn bisschen habt ihr in den anderen Threads ja schon mitbekommen.

Ich habe heute das SVN mit dem PHP-Versioncheck verbunden. Das bedeutet, ich kann an einer einzelnen Version herausfinden, welche PHP-Version und PECL-Pakete benötigt werden. Die Erkennung ist noch nicht perfekt, aber als Basis schon ganz ok. Im nächsten Schritt werde ich das Framework für die Erstellung der Installer erstellen. Als erster Test, wird ein ganz normaler Webinstaller erstellt. Hier werde ich eine Klasse generieren, die die notwendigen Versionen automatisch überprüft.

Klingt gut, vorallem, dass es am Installer vorwärts geht! :D

Hab gestern noch die Basis zum Generieren fertig. Es werden automatisch Klassen generiert, die Create-Queries und auch die Systemanforderungen.

Ab jetzt wird auch der aktuelle trunk über SVN mit in den installer kopiert. Plugins und Skins folgen auch noch (man kann die ja beliebig hinzufügen zu seinem installer).

Leider ist das Ganze aktuell nicht sehr performant: Musste über ne halbe Stunde, bis es generiert war (und das mit 8 Kernen 8GB RAM und nur geringe sonstige Auslastung). Das meiste nimmt das Herausfischen der PHP-Anforderungen in Ansprruch. Mal schauen, da lässt sich vielleicht noch was optimieren. Ich befürchte um nen neuen Server werd ich nicht drum rum kommen.

Der alte Installer ist jetzt nicht mehr im Trunk.
Dadurch wird es bald leichter im Core etwas zu entwickeln, da die index.php dann die richtige ist usw.

http://code.contentlion.de/revision.php?…rev=120&peg=120

Sehr gut! :D
Darauf hab ich schon gewartet. ^^

@Performance:
:O

Mittlerweile werden auch die Einstellungen (Benutzername, Passwort usw) mit in den Installer integriert. Diese sind auch pro Installer/Plugin aufschaltbar. Das heißt, man kann direkt beim Start bestimmte Einstellungen abfragen, die nicht zu den Standard-Einstellungen gehören.

Heute habe ich zwei Dinge gemacht:

- Sind beim Systemcheck alle Anforderungen erfüllt, gibt es nicht im alten Installer eine Seite, wo man auf weiter klicken muss, sondern man wird automatisch weitergeleitet
- In allen öffentlichen Plugins habe ich die package.xml ins SVN committed, da dort in Kürze auch die beschreibbaren Pfade drin stecken. Die Datei wird aktuell schon genutzt, wenn ihr Plugins über den Plugininstaller installiert. Bitte erstmal nicht anfassen.

Hab ne möglcihkeit gefunden, dass Ganze zu Beschleunigen: Mit Threading. Mal schauen, vielleicht bau ich das noch ein. Erstmal aber schauen, wie schnell der am Ende in der Live-Umgebung ist, vielleicht ist das auch erstmal nicht nötig.

http://www.php.net/manual/de/class.thread.php

Ab jetzt kann man in seiner Installer-Definition schon die (Daten)namen der Plugins angeben. Diese werden dann automatisch aus dem SVN heruntergeladen und mit in den Installer gepackt. Natürlich werden die auch in den Kompatibilitätscheck eingebaut. Gleiches muss ich auch noch für die Skins machen.

Die package.xml wird übrigens gelöscht, hier wird es noch möglichkeiten geben, für bestimmte Ordner Schreibrechte anzufordern usw.

Gleiches ist jetzt für die Skins gemacht worden.

Heute gibts mal wieder einen Blogpost zum Installer. Ist vor allem für die Plugin- und Skinentwickler unter euch interessant:

http://blogs.contentlion.org/stefan-wien…-den-installer/

Find ich cool! Ich freue mich auf die neue Version :)

Hab jetzt noch etwas gewerkelt. Die Einstellungsgruppen können jetzt validiert durch eine Klasse im Plugin validiert werden. Speichern folgt noch ;)

Heute habe ich nur einen eigenen Seitentyp für die Gernerierung erstellt (basierend auf Blank Page). Damit besteht das Deployment-System aktuell aus 11 (nicht öffentlichen) Plugins

Heute habe ich Distributor-Klassen erstellt, mit denen die Anwendung verteilt werden kann. Erstmal wird es für mich zum testen nur kopiert (damit ich es nicht immer von hand machen muss) später können FTP und Co hinzu kommen. Geht über ne abstrakte Klasse.

D.h. man kann sich als Verteiler dann eintragen und erhält die Dateien bei einem Update auf seinem Verteilungsserver? :)

Ähnliche Themen