| | | | |
| |||||||
| Software-Design Diskussionen auf Profi-Niveau: PHP Lösungen auf konzeptioneller Ebene |
|
| | LinkBack | Themen-Optionen | Thema bewerten |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Moderator und Wett-König | Ich würde das nicht gegenseitig ausschließen. Es kann durchaus Sinn machen, einen Datenbank-Treiber als Singleton zu erstellen und per DI in eine Datenschicht-Komponente zu injizieren. Viel wichtiger ist es bei der Testbarkeit, dass die Klasse kein "echtes" Singleton ist, sondern durch einen DI-Container oder eine abstrakte Singleton-Implementierung zu einem solchen "erklärt" werden kann. Dann hast du genau beide Vorteile. Exakt deshalb gibt es beispielsweise beim APF eine abstrakte Singleton- und SessionSingleton-Implementierung, die im Zusammenspiel mit dem DIServiceManager solche Initialisierungen erzeugen kann. Die Trennung und Definition eines Schichtenmodells wird dabei ebenso unterstützt wie die Testbarkeit. Ich kann meinen Service jederzeit in einem PHPUnittest manuell erzeugen, manuell mit MOCK-Komponenten initialisieren und meine Tests ausführen. Das funktioniert mit Business-Komponenten genau wie mit Taglibs und Controller, da diese mit den genannten Konzepten (DI und entsprechende Factories) alle zur Laufzeit mit einem definierten "Umfeld" ausgestattet werden. Nachteil des Konzeptes ist in der Tat, dass Fehler erst zur Laufzeit auffallen. Es sagt dir kein Compiler, dass du etwas vergessen hast einzubinden oder zu initialisieren. Man muss bei einer derartig starken Entkopplung als Entwickler eine sehr große Disziplin haben, nicht aus Frust eine Kopplung wieder stärker werden zu lassen, weil einem die Hilfsmittel wie Compiler und IDE besser unter die Arme greifen.
__________________ 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! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| | |
| | ||
| Neuer Benutzer Registriert seit: 29.05.2010
Beiträge: 8
PHP-Kenntnisse: Fortgeschritten ![]() | Zitat:
Wer sich unter Dependeny Injection Container nichts vorstellen kann: Symfony Dependency Injection - Reinventing how you manage PHP classes | |
| | |
| | |||
| Moderator und Wett-König | Zitat:
Zitat:
__________________ 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 |
| Scriptangebot Yunio CMS | MiST3R-FL4SH | Scriptbörse | 17 | 29.05.2010 00:46 |
| [Erledigt] verständnisfrage CMS | d0ne | Off-Topic Diskussionen | 4 | 25.05.2010 06:44 |
| CMS bzw Board einbauen? | gombi | Scriptbörse | 12 | 28.04.2010 15:44 |
| PHP CMS PEAR Musikseite | R24 | Gewerblich | 0 | 28.04.2010 07:40 |
| Was braucht ein gutes CMS | Lollix | Off-Topic Diskussionen | 33 | 03.03.2010 17:51 |
| Login Script / CMS | bikone | PHP Tipps 2009 | 14 | 31.10.2009 23:33 |
| Scriptsuche [Erledigt] Suche CMS für Clan / Community | dontworry | Scriptbörse | 11 | 26.10.2009 20:07 |
| Was muss ein gutes CMS können? | beckerCodes | Software-Design | 33 | 14.09.2009 11:44 |
| Eigenes CMS | Moep | PHP Tipps 2009 | 12 | 06.08.2009 23:00 |
| Cms | Yusuf | Scriptbörse | 9 | 30.07.2009 19:14 |
| Open Source CMS: wer macht mit? | chris14465 | Beitragsarchiv | 6 | 24.06.2009 17:02 |
| Dreamproject [S] CMS evtl. Feststellangebot | vnBiT.sys | Beitragsarchiv | 4 | 25.04.2009 10:51 |
| Modulares CMS programmieren | NikB | PHP-Fortgeschrittene | 7 | 14.04.2009 22:41 |
| [S] erfahrene Coder für eigenes CMS | DarkSky25 | Beitragsarchiv | 14 | 31.03.2009 12:06 |
| CMS mit Framework | KeKs0r | PHP-Fortgeschrittene | 11 | 27.12.2008 23:03 |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| cms architektur, software architektur datenschicht, datenschicht cms, http://www.php.de/software-design/68813-cms-architektur-3.html, dependency injection, dependency injection container php |