|
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 |
|