| | | | |
| |||||||
| Software-Design Diskussionen auf Profi-Niveau: PHP Lösungen auf konzeptioneller Ebene |
|
| | LinkBack | Themen-Optionen | Thema bewerten |
| | |
| Moderator und Wett-König | Hallo xm22, wie oben schon angesprochen interpretierst du DI nicht korrekt. DI ist situativ und nicht global und es löst explizite Abhängigkeiten auf. Das bedeutet auch, dass du in definierten Elementen deiner Software auf eine Konfiguration zurückgreifst, die genau im gewünschten Fall in das Objekt injiziert wird. Benötigt ein Action-Controller eine Konfiguration, wird diesem einfach die notwendige Konfiguration per Definition injiziert. Die Art der Konfiguration kannst du ja gerne Abstrahieren und eine Klasse schreiben, die Konfigurations-Attribute auf zurückliefert. Der Kern des Mechanismus ist jedoch, dass du eine Möglichkeit schaffst, Inhalte jedweder Art in ein Objekt injizieren zu können. Üblicherweise werden im JAVA-Bereich die Business-Objekte (Beans) mit Spring-DI erzeugt und diese können dann auch der Präsentations-Schicht als Konfigurations-Element dienen. Controller selbst per DI zu erzeugen halte ich für nicht notwendig. Die beschriebene Vorgehensweise ermöglicht dir die Konfiguration dann zuzugreifen, wenn du sie benötigst, ohne die Konfiguration in allen Objekten (was ohnehin Blödfug ist) vorhalten zu müssen. Weiterhin ist es dann nicht notwendig, Namespaces oder andere Unterscheidungs-Merkmale einzuführen, denn das Konfigurations-Objekt ist dann immer eine eigene Instanz.
__________________ Viele Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Think about software design before you start to write code! 2. Discuss and review it together with experts! 3. Choose good tools (-> Adventure PHP Framework (APF))! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| | |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Moderator und Wett-König | Hallo xm22, du musst eben nicht eine Konfiguration für alles vorhalten. Auch das APF tut das nicht. Möchtest du in einem Modul A eine Konfiguration haben, dann greifst du in Modul A darauf zu und sonst nirgends. Umgekehrt formuliert ist es auch Blödsinn, dass die Konfiguration eines Moduls A im Modul B zugreifbar ist. Dashalb würde ich den vorgeschlagenen Weg gehen und deine Services mit DI erzeugen um dort - und nur wo es auch benötigt wird - die richtige Konfiguration zu haben.
__________________ Viele Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Think about software design before you start to write code! 2. Discuss and review it together with experts! 3. Choose good tools (-> Adventure PHP Framework (APF))! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| | |
| | |
| Moderator und Wett-König | Hallo xm22, auf etwas stehen oder nicht ist die eine Sache, dein Vorgehen verletzt jedoch Paradigmen der objektorientierten Entwicklung wie z.B. spearation of concerns. Ich bin ebenfalls ein Freund davon, wirklich zentrale Elemente auch in einem zentralen Container zu halten (beim APF ist das die Registry), jedoch sind DB-Zugangsdaten definitiv keine globale Konfiguration. Denn: innerhalb einer Applikation kann es auch mehrere davon geben und diese können wiederum von diversen Parametern (Modul A benutzt Connection A, ...) abhängig sein. Ebenso das Thema Authentifizierung. Dieses kann man - das APF beweist das mit dem UMGT-Modul - sehr schön entkoppeln (separation of concerns) und als Komponente nutzen. Jede Komponente bringt dabei ihr eigenes Set von Konfigurationen mit, das einem - wie oben beschrieben - globalen Schema folgt.
__________________ Viele Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Think about software design before you start to write code! 2. Discuss and review it together with experts! 3. Choose good tools (-> Adventure PHP Framework (APF))! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| | |
| | |
| Erfahrener Benutzer Registriert seit: 02.09.2009
Beiträge: 921
PHP-Kenntnisse: Fortgeschritten ![]() | Ich persönlich arbeite bei der globalen Konfiguration mit dem Singleton-Pattern. Informationsquelle ist ein XML, das mehrere "configuration" Elemente besitzt. Die Singleton-Klasse wählt entsprchend die korrekte Konfiguration aus (z.B. debug, qa, release), liest die Daten aus und stellt sie zur Verfügung. Könnte man sicher auch anders lösen, aber da das für mich funktioniert habe ich derzeit keine Veranlassung da etwas dran zu ändern.
__________________ Wir suchen PHP / Delphi und .NET Entwickler im Raum Darmstadt / Rhein-Main. Infos via E-Mail mueller@new-frontiers.de |
| | |
| | ||
| Moderator und Wett-König | Hallo xm22, Zitat:
Das ist genaus schlecht, wie im JAVA die web.xml in einem Servlet-Container. Dort alles hineinzupfriemeln ist genauso sträflich wie in ASP.NET. Genau deshalb verwendet man in der JAVA-Welt auch Meta-Frameworks wie Spring, die eine vernünftige Möglichkeit mit sich bringen um Services zu konfigurieren. Hier werden DI und andere Methodiken (Service-Locator, ...) verwendet um für Entkopplung, Testbarkeit und Wiederverwendung zu sorgen. Eine zentrale Konfiguration ist gerade bei Unittests echtes Gift!
__________________ Viele Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Think about software design before you start to write code! 2. Discuss and review it together with experts! 3. Choose good tools (-> Adventure PHP Framework (APF))! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| request GET value max length config? | Desian | PHP-Fortgeschrittene | 3 | 30.06.2010 13:51 |
| MySQL Config Performance bei schlechten Abfragen | cycap | Datenbanken | 13 | 15.06.2010 09:21 |
| [Erledigt] CakePHP .hataccess oder Config? | BlackScorp | PHP Tipps 2010 | 2 | 26.03.2010 11:12 |
| Vergleichbare Funktionen ISTNV aus Excel?????? | axeos | PHP Tipps 2009 | 2 | 26.04.2009 20:52 |
| Welche Methode um Config Files editierbar zu machen? | GSJLink | PHP-Fortgeschrittene | 5 | 25.07.2008 01:01 |
| SQL Daten in config eintragen | rate | PHP Tipps 2008 | 9 | 09.06.2008 10:27 |
| Config Datei oder Datenbank | snatch-ic | PHP Tipps 2008 | 11 | 17.03.2008 06:13 |
| Wo is die Config? | cycap | Datenbanken | 0 | 31.05.2006 08:59 |
| Kismet install und config?? | c01001 | Server, Hosting und Workstations | 10 | 22.11.2005 21:53 |
| Apache2 config oder wie??? | c01001 | Server, Hosting und Workstations | 8 | 19.11.2005 18:56 |
| config an php anpassen | PHP Tipps 2005 | 8 | 28.05.2005 13:32 | |
| Vergleichbare Fktn. wie in_array für MySQL | Igäl | Datenbanken | 7 | 28.02.2005 10:07 |
| MYSQL Config Table auslesen? Klappt nicht.. | Datenbanken | 4 | 06.01.2005 16:24 | |
| 1 config | Creativ | PHP Tipps 2004 | 5 | 28.07.2004 16:08 |
| Fatal error: main(): Failed opening required 'config.' ... | PHP Tipps 2004 | 4 | 11.06.2004 18:46 | |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| mvc 3 why applicationid |