Installationsstatus prüfen

Hier finden sich Fragen und Ergänzung zur Dokumentation. // All questions and discussions about the documentation.
Antworten
Well
Beiträge: 263
Registriert: 25.10.2009, 11:00:19
Wohnort: Beuren
Kontaktdaten:

Installationsstatus prüfen

Beitrag von Well » 26.04.2010, 19:33:19

Hey, damit ich mich auch mal wieder zu Wort melde... Ich würde in meine Applikation gerne noch eine Installationsroutine einbauen, aber weiß nicht, wo genau ich prüfen sollte, ob die Applikation bereits installiert ist.

Ich dachte daran, eine neue Konfigurationsdatei zu erstellen, diese dann mittels der Variable "IsInstalled" (false / true) angibt, ob die Applikation bereits installiert ist oder nicht. Wenn nicht würde ich eine Weiterleitung zum Installationsprozess einbauen. Aber wo prüfe ich, welchen Wert die Variable hat? Im Controller des "Main"-Views? (Das erscheint mir unschön...)

Als zweites käme mir dann noch folgende Frage auf: Ist es sinnvoll, den Konfigurationsmanager um Methoden zur Manipulation der Sektionen / Variablen / Werte zu erweitern? (z.B. mittels Vererbung?)

MfG

Benutzeravatar
dr.e.
Administrator
Beiträge: 4606
Registriert: 04.11.2007, 16:13:53

Re: Installationsstatus prüfen

Beitrag von dr.e. » 26.04.2010, 22:58:44

Hallo Well,

schön wieder einmal von dir zu lesen! :)
Ich dachte daran, eine neue Konfigurationsdatei zu erstellen, diese dann mittels der Variable "IsInstalled" (false / true) angibt, ob die Applikation bereits installiert ist oder nicht. Wenn nicht würde ich eine Weiterleitung zum Installationsprozess einbauen. Aber wo prüfe ich, welchen Wert die Variable hat? Im Controller des "Main"-Views? (Das erscheint mir unschön...)
Geht es dir um ein exakt eine Applikation - sprich soetwas wie ein Wiki, wo ich genau weiß, ob schon ein Setup erfolgt ist? Falls ja, gibt es zwei Möglichkeiten: entweder du schreibst bei der Installation den Status der Applikation (installier oder nicht) in eine Konfiguration und liest diese in einer zentralen Front-Controller-Action aus oder b) du veränderst den Source-Code eines zentralen Applikations-Models (z.B. Wert von "isInstalled" auf "true" setzen) und prüfst dies in der Front-Controller-Action.

Sofern du keinen Front-Controller hast, würde ich das in einem Main-Controller machen und bei Bedarf auf eine "Installiere mich"-Seite weiterleiten. Die schönste Lösung ist sicher, diese Information in einem Model zu speichern, weil sie a) zentral verfügbar ist und b) aufwendige Lookups gegen eine Config (das geht noch) oder gegen die Datenbank entfallen.
Als zweites käme mir dann noch folgende Frage auf: Ist es sinnvoll, den Konfigurationsmanager um Methoden zur Manipulation der Sektionen / Variablen / Werte zu erweitern? (z.B. mittels Vererbung?)
Du meinst sicher das Schreiben von Konfigurationen? Das hatten wir schon mal im php.de-Forum diskutiert und dafür gibt es mehr oder weniger auch schon eine Lösung. Diese müsste noch in das APF integriert werden. Sofern du das als Feature benötigst, können wir das gerne für 1.13 aufnehmen. 1.12 ist schon in der Finalisierung, aber sofern das sehr dringend ist, können wir das auch noch in 1.12 aufnehmen. In der Zwischenzeit kannst du dir ganz einfach mit str_replace() & Co. behelfen - zumindest wenn es nur um den Austausch von Werten geht.

Wenn du den Installer fertig hast, würde mich der Aufbau mal interessieren. Ich hab das bisher nur mit Shell-Scripten erledigt. Aber Web-basierte Installer sind schon eine Wissenschaft für sich. :)
Viele Grüße,
Christian

Well
Beiträge: 263
Registriert: 25.10.2009, 11:00:19
Wohnort: Beuren
Kontaktdaten:

Re: Installationsstatus prüfen

Beitrag von Well » 27.04.2010, 19:12:53

Geht es dir um ein exakt eine Applikation - sprich soetwas wie ein Wiki, wo ich genau weiß, ob schon ein Setup erfolgt ist? Falls ja, gibt es zwei Möglichkeiten: entweder du schreibst bei der Installation den Status der Applikation (installier oder nicht) in eine Konfiguration und liest diese in einer zentralen Front-Controller-Action aus oder b) du veränderst den Source-Code eines zentralen Applikations-Models (z.B. Wert von "isInstalled" auf "true" setzen) und prüfst dies in der Front-Controller-Action.

Sofern du keinen Front-Controller hast, würde ich das in einem Main-Controller machen und bei Bedarf auf eine "Installiere mich"-Seite weiterleiten. Die schönste Lösung ist sicher, diese Information in einem Model zu speichern, weil sie a) zentral verfügbar ist und b) aufwendige Lookups gegen eine Config (das geht noch) oder gegen die Datenbank entfallen.
Es handelt sich um eine Applikation - dann werde ich es wohl so wie beschrieben umsetzen. Danke. :)
Du meinst sicher das Schreiben von Konfigurationen? Das hatten wir schon mal im php.de-Forum diskutiert und dafür gibt es mehr oder weniger auch schon eine Lösung. Diese müsste noch in das APF integriert werden. Sofern du das als Feature benötigst, können wir das gerne für 1.13 aufnehmen. 1.12 ist schon in der Finalisierung, aber sofern das sehr dringend ist, können wir das auch noch in 1.12 aufnehmen. In der Zwischenzeit kannst du dir ganz einfach mit str_replace() & Co. behelfen - zumindest wenn es nur um den Austausch von Werten geht.
Hm... Mit str_replace() die Werte zu ersetzen... Wäre es da nicht doch schöner und praktischer, bis 1.13 ein neues Modul zu erstellen, das vom Konfigurationsmanager erbt und mittels Methoden das interne Array "__Configurations" modifiziert, welches dann mit einer Methode wie "saveConfiguration()" die Konfigurationsdatei neu schreibt?

Benutzeravatar
dr.e.
Administrator
Beiträge: 4606
Registriert: 04.11.2007, 16:13:53

Re: Installationsstatus prüfen

Beitrag von dr.e. » 27.04.2010, 19:34:19

Hallo Well,
Es handelt sich um eine Applikation - dann werde ich es wohl so wie beschrieben umsetzen. Danke. :)
Ok, fein. Solltest du Fragen zur Umsetzung haben, dann immer gerne.
Hm... Mit str_replace() die Werte zu ersetzen... Wäre es da nicht doch schöner und praktischer, bis 1.13 ein neues Modul zu erstellen, das vom Konfigurationsmanager erbt und mittels Methoden das interne Array "__Configurations" modifiziert, welches dann mit einer Methode wie "saveConfiguration()" die Konfigurationsdatei neu schreibt?
Das wäre die Idee. Man könnte dann mit 1.13 eine bestehende Konfiguration laden, diese modifizieren und anschließend wieder speichern. Dann nehme ich das für 1.13 direkt als ersten Task mit auf.
Viele Grüße,
Christian

Antworten