| Inhaltsverzeichnis | 6 |
|---|
| Vorwort | 11 |
|---|
| 1. Einfache Klassen | 18 |
|---|
| 1. 1. Aufbau einer Klasse | 19 |
| 1. 1. 1. Eigenschaften und Methoden | 19 |
| 1. 1. 2. Konstruktoren und Destruktoren | 28 |
| 1. 1. 3. Zugriffsschutz und Zugriffsmethoden | 32 |
| 1. 2. Erweiterte Klassenstrukturen | 40 |
| 1. 2. 1. Statische Methoden und Eigenschaften | 40 |
| 1. 2. 2. Konstanten | 46 |
| 1. 3. Klassenverbünde | 50 |
| 1. 3. 1. Klassen kombinieren | 50 |
| 1. 3. 2. Referenzen verstehen und beherrschen | 57 |
| 1. 3. 3. Algorithmen auslagern | 61 |
| 2. Erweiterte Klassen | 67 |
|---|
| 2. 1. Vererbung | 67 |
| 2. 1. 1. Einfache Vererbung | 68 |
| 2. 1. 2. Programmierung auf eine Schnittstelle hin | 75 |
| 2. 1. 3. Dynamische Bindung und Polymorphismus | 89 |
| 2. 2. Abstraktion | 93 |
| 2. 2. 1. Vererbungshierarchie und Prinzip | 94 |
| 2. 2. 2. Klienten | 100 |
| 2. 2. 3. Beziehungen zwischen Klassen | 105 |
| 2. 3. Schnittstellen | 109 |
| 2. 3. 1. Einfache Verwendung | 109 |
| 2. 3. 2. Mehrfache Implementierung | 117 |
| 3. Das UML-Klassendiagramm | 120 |
|---|
| 3. 1. Grundlagen | 120 |
| 3. 1. 1. Definition | 120 |
| 3. 1. 2. Einsatz der UML in PHP | 124 |
| 3. 1. 3. UML als Modellierungswerkzeug | 127 |
| 3. 2. Einfache Klassen und Verbünde | 127 |
| 3. 2. 1. Einfaches Klassendiagramm | 127 |
| 3. 2. 2. Statische Mitglieder und Konstanten | 129 |
| 3. 2. 3. Beziehungen zwischen Klassen | 130 |
| 3. 3. Klassenhierarchien | 133 |
| 3. 3. 1. Vererbung | 133 |
| 3. 3. 2. Abstraktion | 137 |
| 3. 3. 3. Schnittstellen | 139 |
| 3. 4. Beziehungen zwischen Klassen | 140 |
| 3. 4. 1. Assoziation | 140 |
| 3. 4. 2. Aggregation | 141 |
| 3. 4. 3. Komposition | 142 |
| 4. PHP-Spezialitäten | 144 |
|---|
| 4. 1. Magische Methoden | 144 |
| 4. 1. 1. Überladung von Eigenschaften | 145 |
| 4. 1. 2. Überladung von Methoden | 148 |
| 4. 1. 3. Zustand überprüfen | 151 |
| 4. 1. 4. Zeichenkette-Ausgabe | 155 |
| 4. 1. 5. Serialisierung | 157 |
| 4. 1. 6. Klassen exportieren | 162 |
| 4. 1. 7. Klassen automatisch laden | 163 |
| 4. 2. Ausnahmen | 164 |
| 4. 2. 1. Standard-Ausnahmen | 166 |
| 4. 2. 2. Abgeleitete Ausnahmen | 170 |
| 4. 3. Reflection | 173 |
| 4. 3. 1. Einfache Reflection | 174 |
| 4. 3. 2. PHP5-Reflection | 184 |
| 4. 3. 3. Dynamische Instanziierung | 193 |
| 5. Entwurfsmuster des Standardkatalogs (GoF) | 198 |
|---|
| 5. 1. Erzeugung | 198 |
| 5. 1. 1. Singleton | 201 |
| 5. 1. 2. Einfache Fabrik und Fabrikmethode | 205 |
| 5. 2. Struktur | 212 |
| 5. 2. 1. Dekorierer | 212 |
| 5. 2. 2. Kompositum | 218 |
| 5. 2. 3. Adapter | 223 |
| 5. 2. 4. Fassade | 228 |
| 5. 3. Verhalten | 233 |
| 5. 3. 1. Befehl | 233 |
| 5. 3. 2. Schablonenmethode | 242 |
| 5. 3. 3. Besucher | 247 |
| 5. 3. 4. Strategie | 250 |
| 6. Mehrschichtigkeit | 254 |
|---|
| 6. 1. Architekturvarianten | 254 |
| 6. 1. 1. Einführung | 255 |
| 6. 1. 2. Zwei Schichten | 261 |
| 6. 1. 3. Drei Schichten | 262 |
| 6. 1. 4. Vier und mehr Schichten | 263 |
| 6. 1. 5. Übersicht | 266 |
| 6. 2. Umsetzung in PHP | 267 |
| 6. 2. 1. Prozedurale Lösung mit Arrays | 269 |
| 6. 2. 2. Objektorientierte Variante | 279 |
| 6. 2. 3. XML | 291 |
| 6. 2. 4. WebServices | 303 |
| 7. Enterprise Application Muster | 320 |
|---|
| 7. 1. Basis-Muster | 320 |
| 7. 1. 1. Registry | 321 |
| 7. 1. 2. Weitere Basis-Muster | 324 |
| 7. 2. Datenzugriffsschicht | 325 |
| 7. 2. 1. Active Record | 325 |
| 7. 2. 2. Data Mapper | 333 |
| 7. 2. 3. Row Data Gateway | 340 |
| 7. 2. 4. Table Data Gateway | 347 |
| 7. 2. 5. Beziehungen | 352 |
| 7. 2. 6. Sonstige Muster | 357 |
| 7. 3. Domänenlogik | 361 |
| 7. 3. 1. Allgemeine Überlegungen | 361 |
| 7. 3. 2. Transaction Script | 364 |
| 7. 3. 3. Domain Model | 367 |
| 7. 3. 4. Table Module | 371 |
| 7. 3. 5. Service Layer | 373 |
| 7. 4. Präsentationsschicht | 375 |
| 7. 4. 1. Page Controller | 375 |
| 7. 4. 2. Front Controller | 377 |
| 7. 4. 3. Transform View | 378 |
| 7. 4. 4. Two Step View | 381 |
| 8. Planung mit Use Cases | 384 |
|---|
| 8. 1. Darstellung der Use Case-Technik | 384 |
| 8. 1. 1. Einführung | 385 |
| 8. 1. 2. Basismethodik | 386 |
| 8. 1. 3. Format der Anwendungsfälle | 396 |
| 8. 2. Anwendungsfälle in Text und UML | 397 |
| 8. 2. 1. Anwendungserzählungen | 398 |
| 8. 2. 2. Tabellarische Anwendungsfälle | 400 |
| 8. 2. 3. Use Case-Diagramm der UML | 403 |
| 8. 2. 4. Aktivitätsdiagramm der UML | 411 |
| Index | 424 |