Hallo,
ich bin gerade an einem Problem, zu dem ich bis jetzt keine "richtige" Lösung güt mich finden konnte. Und zwar stelle ich mir die Frage, wie man in einer Applikation auf die Applikations-Konfiguration zugreift. In meinem Fall ist das ein Objekt ähnlich Zend_Config.
Bisher ist mein Ansatz folgender, mit dem ich aber sehr unzufrieden bin. Das Konzept ist ähnlich wie hmvc:
Ich habe, wie gesagt, ein Konfigurationsobjekt. Dieses enthält sämtliche Konfigurationen zu der Applikation. Das führt natürlich dazu, dass es an den verschiedensten Stellen benötigt wird. Daher war mein Ansatz bisher der, dass ich den Applikationsknoten (Entspricht etwa einer Action im mvc-Prinzip) und den jeweiligen Views dieses Objekt im Konstruktor übergeben habe, so dass gesichert ist, dass es auch vorhanden ist.
Das Problem dabei ist, dass viele andere Objekte - z. B. irgendwelche Plugins, aber eben nicht alle, ebenfalls Zugriff auf die Konfiguration benötigen. Das habe ich bisher so gelöst, dass ich hier den Plugins, die die Konfiguration benötigen, diese mit übergebe. Allerdings ist das sehr frickelig und unflexibel.
Jetzt habe ich folgende Ansätze, die in meinen Augen aber alle nicht ganz gar sind:
1. Singleton (Evtl. mit Parameter, um mehrere verwalten zu können, also etwa so:
2. Per Registry
3. Per DI in JEDES Objekt
4. Ein Applikationsobjekt, etwa wie bei dem Kohana-Framework, also etwa so:
Mittlerweile tendiere ich zu Punkt 3, da alle Objekte letztendlich von einer einzigen Oberklasse ("Object") abgeleitet werden und das dort relativ leicht zu implementieren wäre. Daraus leitet sich dann ein evtl. 5. Punkt ab, nämlich als statische Eigenschaft von "Object", also so:
Eine manuelle Übergabe kommt für mich nicht in Frage, weil das einfach zu unflexibel und aufwändig ist.
Was ist eure Meinung dazu?
ich bin gerade an einem Problem, zu dem ich bis jetzt keine "richtige" Lösung güt mich finden konnte. Und zwar stelle ich mir die Frage, wie man in einer Applikation auf die Applikations-Konfiguration zugreift. In meinem Fall ist das ein Objekt ähnlich Zend_Config.
Bisher ist mein Ansatz folgender, mit dem ich aber sehr unzufrieden bin. Das Konzept ist ähnlich wie hmvc:
Ich habe, wie gesagt, ein Konfigurationsobjekt. Dieses enthält sämtliche Konfigurationen zu der Applikation. Das führt natürlich dazu, dass es an den verschiedensten Stellen benötigt wird. Daher war mein Ansatz bisher der, dass ich den Applikationsknoten (Entspricht etwa einer Action im mvc-Prinzip) und den jeweiligen Views dieses Objekt im Konstruktor übergeben habe, so dass gesichert ist, dass es auch vorhanden ist.
Das Problem dabei ist, dass viele andere Objekte - z. B. irgendwelche Plugins, aber eben nicht alle, ebenfalls Zugriff auf die Konfiguration benötigen. Das habe ich bisher so gelöst, dass ich hier den Plugins, die die Konfiguration benötigen, diese mit übergebe. Allerdings ist das sehr frickelig und unflexibel.
Jetzt habe ich folgende Ansätze, die in meinen Augen aber alle nicht ganz gar sind:
1. Singleton (Evtl. mit Parameter, um mehrere verwalten zu können, also etwa so:
PHP-Code:
Config::getInstance('name');
3. Per DI in JEDES Objekt
4. Ein Applikationsobjekt, etwa wie bei dem Kohana-Framework, also etwa so:
PHP-Code:
Application::config->...
PHP-Code:
Object::config->...
Was ist eure Meinung dazu?
Kommentar