|
Inhaltsübersicht |
6 |
|
|
Inhaltsverzeichnis |
8 |
|
|
Vorwort des Autors |
22 |
|
|
Fachliches Geleitwort |
24 |
|
|
Teil I – Die Grundlagen |
26 |
|
|
1 Einführung in das Zend Framework |
28 |
|
|
1.1 Überblick über PHP Framework |
28 |
|
|
1.2 Wer dieses Buch lesen sollte |
29 |
|
|
1.3 Wegweiser |
29 |
|
|
1.4 Vorteile des Zend Framework |
30 |
|
|
1.5 Überblick über die Komponenten |
32 |
|
|
1.6 Der Zend Framework-Kosmos |
33 |
|
|
1.7 Zend Framework-Programmierrichtlinien |
35 |
|
|
1.8 Struktur des Zend Framework |
36 |
|
|
1.9 Linkcodes |
37 |
|
|
1.10 Luigis Pizzaservice |
37 |
|
|
1.11 Beiliegende CD-ROM |
38 |
|
|
1.12 Referenzhandbuch und API-Dokumentation |
38 |
|
|
1.13 Zusammenfassung |
39 |
|
|
2 Zend Framework einrichten |
40 |
|
|
2.1 Bezugsquellen |
40 |
|
|
2.2 Voraussetzungen |
41 |
|
|
2.3 Verzeichnisstruktur |
41 |
|
|
2.3.1 Projektverzeichnis erstellen |
42 |
|
|
2.3.2 Verzeichnisstruktur, oberste Ebene |
42 |
|
|
2.3.3 Verzeichnisstruktur für application/-Verzeichnis |
43 |
|
|
2.3.4 Verzeichnisstruktur für public/-Verzeichnis |
44 |
|
|
2.3.5 Verzeichnisstruktur für data/-Verzeichnis |
45 |
|
|
2.3.6 Verzeichnisstruktur als Projektvorlage |
45 |
|
|
2.4 Installation |
46 |
|
|
2.5 Eigene Erweiterungen des Framework |
47 |
|
|
2.6 Mehrere Module verwenden |
48 |
|
|
2.7 Zend Framework und Shared Hosting |
49 |
|
|
2.8 Virtual Hosts einrichten |
51 |
|
|
2.8.1 Virtual Hosts für Windows einrichten |
51 |
|
|
2.8.2 Virtual Hosts für Linux einrichten |
52 |
|
|
2.9 Zend Framework nicht als Framework nutzen |
53 |
|
|
2.10 Zusammenfassung |
53 |
|
|
3 Schnellstart mit dem Zend Framework |
54 |
|
|
3.1 Projekt einrichten |
54 |
|
|
3.2 Apache-Konfiguration |
55 |
|
|
3.3 Setup-Datei |
56 |
|
|
3.4 Bootstrap-Datei |
57 |
|
|
3.5 Controller |
59 |
|
|
3.5.1 Begriffe abgrenzen |
59 |
|
|
3.5.2 IndexController |
59 |
|
|
3.5.3 ErrorController |
60 |
|
|
3.6 View und Layout |
61 |
|
|
3.6.1 Zentrales Layout einrichten |
61 |
|
|
3.6.2 View-Skript für Startseite mit Pizzaliste |
62 |
|
|
3.6.3 View-Skript für Anzeige einer Pizza |
63 |
|
|
3.6.4 View-Skript für die Anzeige von Fehlern |
63 |
|
|
3.7 Konfiguration |
64 |
|
|
3.7.1 Konfigurationsdatei erstellen |
64 |
|
|
3.7.2 Konfigurationsdatei laden und verfügbar machen |
65 |
|
|
3.8 Models und Datenbanken |
65 |
|
|
3.8.1 Vorbereitungen |
65 |
|
|
3.8.2 Models einrichten |
66 |
|
|
3.8.3 Models verwenden |
67 |
|
|
3.8.4 View anpassen für Ausgabe der Zutaten |
67 |
|
|
3.9 Zusammenfassung |
68 |
|
|
Teil II – Die Komponenten |
70 |
|
|
4 Basis-Komponenten |
72 |
|
|
4.1 Zend_Exception |
72 |
|
|
4.2 Zend_Loader |
73 |
|
|
4.2.1 Dateien und Klassen laden |
73 |
|
|
4.2.2 Automatisches Laden |
73 |
|
|
4.2.3 Plug-Ins laden |
74 |
|
|
4.3 Zend_Registry |
75 |
|
|
4.4 Zend_Config |
76 |
|
|
4.4.1 PHP-Arrays verwenden |
76 |
|
|
4.4.2 INI-Datei verwenden |
77 |
|
|
4.4.3 XML-Datei verwenden |
78 |
|
|
4.4.4 Auf Konfigurationsdaten zugreifen |
78 |
|
|
4.4.5 Zend_Config_Writer |
79 |
|
|
4.5 Zend_Cache |
79 |
|
|
4.5.1 Backends für Zend_Cache |
80 |
|
|
4.5.2 Datenbankabfragen cachen |
81 |
|
|
4.5.3 Funktionsaufrufe cachen |
82 |
|
|
4.5.4 Methodenaufrufe für eine Klasse cachen |
83 |
|
|
4.5.5 Dateien cachen |
84 |
|
|
4.5.6 Ausgaben an Browser cachen |
85 |
|
|
4.5.7 Komplette Seiten cachen |
86 |
|
|
4.5.8 Tags verwenden |
88 |
|
|
4.5.9 Cache löschen |
88 |
|
|
4.6 Zend_Log |
89 |
|
|
4.6.1 In eine Logdatei schreiben |
89 |
|
|
4.6.2 In einer Datenbank loggen |
90 |
|
|
4.6.3 In Firebug loggen |
90 |
|
|
4.6.4 Weitere Möglichkeiten von Zend_Log |
91 |
|
|
4.7 Zend_Mail |
92 |
|
|
4.7.1 E-Mails versenden |
92 |
|
|
4.7.2 E-Mail-Konto abfragen |
93 |
|
|
4.8 Zend_Filter |
96 |
|
|
4.8.1 Eigene Filter schreiben |
97 |
|
|
4.8.2 Weitere Möglichkeiten von Zend_Filter |
98 |
|
|
4.9 Zend_Validate |
98 |
|
|
4.9.1 Eigene Validatoren schreiben |
99 |
|
|
4.9.2 Fehlermeldungen anpassen |
100 |
|
|
4.10 Zusammenfassung |
101 |
|
|
5 Controller |
102 |
|
|
5.1 Einführung |
102 |
|
|
5.2 Ablauf einer Anfrage |
103 |
|
|
5.2.1 Initialisierungsprozess |
104 |
|
|
5.2.2 Verarbeitungsprozess |
104 |
|
|
5.3 Front-Controller |
106 |
|
|
5.3.1 Front-Controller verwenden |
106 |
|
|
5.3.2 Front-Controller konfigurieren |
106 |
|
|
5.3.3 Front-Controller ausführen |
108 |
|
|
5.4 Request-Objekt |
109 |
|
|
5.4.1 Auf das Request-Objekt zugreifen |
109 |
|
|
5.4.2 Auf Anfragedaten zugreifen |
109 |
|
|
5.4.3 Art der Anfrage erkennen |
110 |
|
|
5.4.4 Daten im Request-Objekt verändern |
111 |
|
|
5.4.5 Mit Verzeichnissen arbeiten |
111 |
|
|
5.5 Response-Objekt |
112 |
|
|
5.5.1 Inhalte bearbeiten |
112 |
|
|
5.5.2 Header bearbeiten |
112 |
|
|
5.5.3 Response versenden |
113 |
|
|
5.5.4 Ausnahmen behandeln |
113 |
|
|
5.6 Routing |
114 |
|
|
5.6.1 Funktionsweise des Standardrouters |
114 |
|
|
5.6.2 Router verwenden |
115 |
|
|
5.6.3 Eigene Routen verwenden |
115 |
|
|
5.6.4 Typen von Routen |
117 |
|
|
5.6.5 Zend_Config für die Definition der Routen verwenden |
119 |
|
|
5.7 Dispatcher |
120 |
|
|
5.8 Action-Controller |
120 |
|
|
5.8.1 Action-Controller erstellen |
120 |
|
|
5.8.2 Hooks im Action-Controller |
123 |
|
|
5.8.3 Wichtige Methoden im Action-Controller |
125 |
|
|
5.8.4 View-Integration im Action-Controller |
126 |
|
|
5.9 Action-Helper |
127 |
|
|
5.9.1 Action-Helper verwenden |
127 |
|
|
5.9.2 Eigene Action-Helper schreiben und verwenden |
128 |
|
|
5.9.3 FlashMessenger-Action-Helper |
129 |
|
|
5.9.4 ViewRenderer-Action-Helper |
130 |
|
|
5.10 Plug-Ins |
131 |
|
|
5.10.1 Funktionsweise von Plug-Ins |
131 |
|
|
5.10.2 Eigene Plug-Ins schreiben und verwenden |
132 |
|
|
5.10.3 ErrorHandler-Plug-In |
134 |
|
|
5.11 Zend_Controller Beispiel |
135 |
|
|
5.12 Zusammenfassung |
136 |
|
|
6 View |
138 |
|
|
6.1 Zend_View |
138 |
|
|
6.1.1 Zend_View einsetzen |
138 |
|
|
6.1.2 Zend_View konfigurieren |
139 |
|
|
6.1.3 Zend_View zusammen mit Zend_Controller verwenden |
140 |
|
|
6.2 Zend_View-Skripte |
141 |
|
|
6.3 View-Helper |
143 |
|
|
6.3.1 Eigene View-Helper schreiben und verwenden |
143 |
|
|
6.3.2 Action-View-Helper |
144 |
|
|
6.3.3 Partial-View-Helper |
145 |
|
|
6.3.4 View-Helper für HTML-Kopfdaten |
147 |
|
|
6.3.5 View-Helper für Ausgabe von HTML-Formularen |
148 |
|
|
6.3.6 Translate-View-Helper |
150 |
|
|
6.3.7 Url-View-Helper |
150 |
|
|
6.4 Beliebige Template-Engine integrieren |
151 |
|
|
6.5 Zend_Layout |
153 |
|
|
6.5.1 Beispiel Layout und Lösungsversuche |
153 |
|
|
6.5.2 Zend_Layout verwenden |
154 |
|
|
6.5.3 Zend_Layout-Skripte |
155 |
|
|
6.6 Zusammenfassung |
156 |
|
|
7 Datenbanken |
158 |
|
|
7.1 Einführung |
158 |
|
|
7.2 Zend_Db_Adapter |
159 |
|
|
7.2.1 Datenbankadapter initialisieren |
159 |
|
|
7.2.2 Daten abfragen |
160 |
|
|
7.2.3 Daten ändern |
161 |
|
|
7.2.4 Werte maskieren |
162 |
|
|
7.2.5 Transaktionen |
163 |
|
|
7.3 Zend_Db_Select |
164 |
|
|
7.4 Zend_Db_Table |
166 |
|
|
7.4.1 Zend_Db_Table verwenden |
166 |
|
|
7.4.2 Daten abfragen |
168 |
|
|
7.4.3 Daten ändern |
169 |
|
|
7.4.4 Fortgeschrittene Tipps |
169 |
|
|
7.5 Zend_Db_Table_Rowset |
171 |
|
|
7.5.1 Zeilen durchlaufen und ansteuern |
171 |
|
|
7.5.2 Daten in Array umwandeln |
172 |
|
|
7.6 Zend_Db_Table_Row |
172 |
|
|
7.6.1 Auf Zeilen zugreifen |
172 |
|
|
7.6.2 Zeilen ändern |
173 |
|
|
7.6.3 Fortgeschrittene Tipps |
174 |
|
|
7.7 Tabellenrelationen |
175 |
|
|
7.7.1 Einführung in Datenbankrelationen |
176 |
|
|
7.7.2 Beziehungen definieren |
176 |
|
|
7.7.3 Beziehungen verwenden |
178 |
|
|
7.8 Zend_Db_Profiler |
179 |
|
|
7.9 Zusammenfassung |
181 |
|
|
8 Benutzermanagement |
184 |
|
|
8.1 Zend_Session |
184 |
|
|
8.1.1 Anwendung von Zend_Session |
184 |
|
|
8.1.2 Fortgeschrittene Tipps für Zend_Session |
185 |
|
|
8.1.3 Sessions in einer Datenbank verwalten |
186 |
|
|
8.2 Zend_Acl |
187 |
|
|
8.2.1 Grundwissen zum Aufbau einer ACL |
187 |
|
|
8.2.2 Eine ACL definieren |
188 |
|
|
8.2.3 Eine Zugriffskontrollliste mit Zend_Acl definieren Rechte abfragen |
189 |
|
|
8.2.4 Zend_Acl mit Zend_Config laden |
190 |
|
|
8.2.5 Fortgeschrittene Tipps für Zend_Acl |
192 |
|
|
8.3 Zend_Auth |
193 |
|
|
8.3.1 Zend_Auth einsetzen |
193 |
|
|
8.3.2 Per Datenbankadapter authentifizieren |
194 |
|
|
8.3.3 Per HTTP authentifizieren |
196 |
|
|
8.4 Zend_Acl und Zend_Auth zusammen verwenden |
196 |
|
|
8.5 Weitere Komponenten |
199 |
|
|
8.5.1 Zend_OpenId |
199 |
|
|
8.5.2 Zend_InfoCard |
201 |
|
|
8.5.3 Zend_Ldap |
201 |
|
|
8.6 Zusammenfassung |
201 |
|
|
9 Formularverarbeitung |
202 |
|
|
9.1 Einführung |
202 |
|
|
9.2 Formulare erstellen |
203 |
|
|
9.2.1 Zend_Form-Objekt verwenden |
203 |
|
|
9.2.2 Zend_Form-Klasse erweitern |
205 |
|
|
9.2.3 Zend_Form mit Zend_Config konfigurieren |
206 |
|
|
9.3 Formulare ausgeben und dekorieren |
208 |
|
|
9.3.1 Erstellung und Ausgabe trennen |
208 |
|
|
9.3.2 Elemente für Ausgabe gruppieren |
209 |
|
|
9.3.3 Formulare dekorieren |
211 |
|
|
9.3.4 Formulare selber dekorieren |
212 |
|
|
9.4 Formulardaten filtern und validieren |
214 |
|
|
9.4.1 Formulardaten filtern |
214 |
|
|
9.4.2 Formulardaten validieren |
217 |
|
|
9.5 Formulare verarbeiten |
220 |
|
|
9.5.1 Zend_Form-Verarbeitungsprozess |
220 |
|
|
9.5.2 Formular zum Anlegen von Daten verarbeiten |
221 |
|
|
9.5.3 Formular zum Ändern von Datensätzen verarbeiten |
221 |
|
|
9.5.4 Formular mit mehreren Formularbuttons verarbeiten |
222 |
|
|
9.6 Unterformulare erstellen |
223 |
|
|
9.7 Dateien per Formular hochladen |
225 |
|
|
9.7.1 Formularelement für Dateiupload definieren |
225 |
|
|
9.7.2 Dateiupload verarbeiten |
225 |
|
|
9.7.3 Validatoren und Filter für Dateiuploads |
226 |
|
|
9.8 Zend_Captcha |
227 |
|
|
9.8.1 Zur Theorie von Captchas |
227 |
|
|
9.8.2 Captchas in einem Formular verwenden |
227 |
|
|
9.9 Mehrseitige Formulare |
228 |
|
|
9.10 Zusammenfassung |
228 |
|
|
10 Internationalisierung und Lokalisierung |
230 |
|
|
10.1 Zend_Locale |
230 |
|
|
10.2 Zend_Translate |
232 |
|
|
10.2.1 Übersetzungsadapter |
232 |
|
|
10.2.2 Auf Übersetzungstexte zugreifen |
233 |
|
|
10.2.3 Organisation Ihrer Übersetzungsdateien |
234 |
|
|
10.3 Zend_Date |
236 |
|
|
10.3.1 Datum festlegen und ausgeben |
237 |
|
|
10.3.2 Mit Datumsangaben rechnen und vergleichen |
238 |
|
|
10.4 Zend_Currency |
239 |
|
|
10.5 Zend_Measure |
241 |
|
|
10.6 Zend_TimeSync |
242 |
|
|
10.7 Zusammenfassung |
243 |
|
|
11 Suche mit Lucene |
244 |
|
|
11.1 Theorie einer Volltextsuche |
244 |
|
|
11.1.1 Indizierung |
244 |
|
|
11.1.2 Suchabfragen |
245 |
|
|
11.2 Index verwenden |
245 |
|
|
11.2.1 Index erstellen und aktualisieren |
245 |
|
|
11.2.2 Mit einem Index arbeiten |
246 |
|
|
11.3 Dokumente verwenden |
246 |
|
|
11.3.1 Dokumente hinzufügen |
246 |
|
|
11.3.2 Feldtypen für Dokumente |
247 |
|
|
11.3.3 Token filtern |
248 |
|
|
11.3.4 HTML verarbeiten |
250 |
|
|
11.3.5 Office-Dokumente verarbeiten |
251 |
|
|
11.3.6 Eigene Klasse für Dokumente erstellen |
251 |
|
|
11.3.7 Dokumente löschen und ändern |
252 |
|
|
11.4 Index abfragen |
253 |
|
|
11.4.1 Query Language verwenden |
253 |
|
|
11.4.2 Query Construction API verwenden |
254 |
|
|
11.4.3 Ergebnisse beschränken und sortieren |
255 |
|
|
11.5 Zusammenfassung |
256 |
|
|
12 PDF-Erstellung |
258 |
|
|
12.1 Einführung |
258 |
|
|
12.2 Arbeiten mit Dokumenten und Seiten |
259 |
|
|
12.2.1 Dokumente erstellen, speichern, laden und ausgeben |
259 |
|
|
12.2.2 Mit Metadaten arbeiten |
260 |
|
|
12.2.3 Seiten erstellen, sortieren und löschen |
261 |
|
|
12.2.4 Seitenformate |
262 |
|
|
12.3 Mit Texten arbeiten |
263 |
|
|
12.3.1 Texte zeichnen |
263 |
|
|
12.3.2 Zeichensätze verwenden |
263 |
|
|
12.4 Mit Grafik arbeiten |
264 |
|
|
12.4.1 Formen zeichnen |
264 |
|
|
12.4.2 Grafiken zeichnen |
265 |
|
|
12.5 Farben, Linienmuster und Styles |
266 |
|
|
12.5.1 Farben definieren und verwenden |
266 |
|
|
12.5.2 Linienbreite und Linienmuster verwenden |
266 |
|
|
12.5.3 Styles definieren und verwenden |
267 |
|
|
12.6 Fortgeschrittene Tipps für Zend_Pdf |
268 |
|
|
12.6.1 Zend_Pdf erweitern |
268 |
|
|
12.6.2 Zend_Pdf als View verwenden |
269 |
|
|
12.6.3 Mit Dokumentvorlagen arbeiten |
269 |
|
|
12.7 Zusammenfassung |
270 |
|
|
13 Zend Framework und JavaScript |
272 |
|
|
13.1 Dojo einbinden |
272 |
|
|
13.1.1 Zend_Dojo für Zend_View aktivieren |
273 |
|
|
13.1.2 Zend_Dojo für Zend_Form aktivieren |
273 |
|
|
13.1.3 Dojo-Dateien laden |
274 |
|
|
13.2 View Helper für Zend_Dojo |
276 |
|
|
13.2.1 AccordionContainer |
276 |
|
|
13.2.2 BorderContainer |
277 |
|
|
13.2.3 StackContainer |
278 |
|
|
13.3 Formulare mit Zend_Dojo_Form |
279 |
|
|
13.4 Ajax mit Zend_Dojo |
281 |
|
|
13.4.1 Was ist denn dieses Ajax eigentlich? |
281 |
|
|
13.4.2 Beispiel für eine Autovervollständigung |
282 |
|
|
13.5 jQuery mit dem Zend Framework einsetzen |
285 |
|
|
13.6 Weitere JavaScript-Bibliotheken |
286 |
|
|
14 Feeds und Webservices |
288 |
|
|
14.1 Zend_Feed |
288 |
|
|
14.1.1 Feeds auslesen |
289 |
|
|
14.1.2 Eigenen Feed erstellen |
290 |
|
|
14.1.3 Weitere Möglichkeiten |
291 |
|
|
14.2 Zend_Service_Amazon |
291 |
|
|
14.3 Zend_Service_Flickr |
293 |
|
|
14.4 Zend_Service_Delicious |
294 |
|
|
14.5 Zend_Service_Technorati |
295 |
|
|
14.6 Zend_Service_Akismet |
296 |
|
|
14.7 Zend_Service_Yahoo |
298 |
|
|
14.8 Zend_Gdata_Spreadsheets |
299 |
|
|
14.9 Zend_Gdata_Calendar |
300 |
|
|
14.10 Zend_Gdata_YouTube |
302 |
|
|
14.10.1 Authentifizierung für YouTube API |
302 |
|
|
14.10.2 Videos per API abrufen |
302 |
|
|
14.10.3 Videos per API hochladen |
304 |
|
|
14.11 Weitere Webservice-Komponenten |
305 |
|
|
14.12 Zusammenfassung |
306 |
|
|
15 Kommunikation |
308 |
|
|
15.1 Zend_Http |
308 |
|
|
15.1.1 HTTP-Abfragen durchführen |
308 |
|
|
15.1.2 HTTP-Antworten auswerten |
309 |
|
|
15.1.3 Fortgeschrittener Einsatz |
310 |
|
|
15.2 Zend_Rest |
310 |
|
|
15.2.1 Zend_Rest_Client einsetzen |
311 |
|
|
15.2.2 Zend_Rest_Server aufsetzen |
312 |
|
|
15.3 Zend_XmlRpc |
313 |
|
|
15.3.1 Zend_XmlRpc_Client einsetzen |
313 |
|
|
15.3.2 Zend_XmlRpc_Server aufsetzen |
314 |
|
|
15.4 Zend_Soap |
316 |
|
|
15.4.1 Zend_Soap_Client einsetzen |
316 |
|
|
15.4.2 Zend_Soap_Server aufsetzen |
317 |
|
|
15.4.3 WSDL-Beschreibungen aufbauen |
318 |
|
|
15.5 Zusammenfassung |
319 |
|
|
16 Sonstige Komponenten |
320 |
|
|
16.1 Zend_Amf |
320 |
|
|
16.2 Zend_Console_Getopt |
320 |
|
|
16.3 Zend_Debug |
320 |
|
|
16.4 Zend_Json |
321 |
|
|
16.5 Zend_Memory |
321 |
|
|
16.6 Zend_Paginator |
321 |
|
|
16.7 Zend_ProgressBar |
323 |
|
|
16.8 Zend_Text |
323 |
|
|
16.9 Zend_Server_Reflection |
324 |
|
|
16.10 Zend_Uri |
324 |
|
|
16.11 Zend_Version |
325 |
|
|
16.12 Zend_Wildfire |
325 |
|
|
Teil III – Die Praxis |
326 |
|
|
17 Models umsetzen |
328 |
|
|
17.1 Interface für Models definieren |
328 |
|
|
17.2 Modelklassen laden |
329 |
|
|
17.3 Abstrakte Modelklassen erstellen |
330 |
|
|
17.4 Model mit Datenbank verwenden |
331 |
|
|
17.5 Model mit Webservice verwenden |
335 |
|
|
17.6 Models, Formulare, Filter und Validatoren |
338 |
|
|
17.6.1 Die Theorie |
338 |
|
|
17.6.2 Ein Lösungsansatz |
340 |
|
|
17.7 Fazit |
342 |
|
|
18 Modularisierung von Anwendungen |
344 |
|
|
18.1 Module per Plug-In einrichten |
344 |
|
|
18.2 Modulspezifische Konfiguration |
346 |
|
|
18.3 Modulspezifische Layouts |
347 |
|
|
18.4 Modulspezifisches Routing |
348 |
|
|
18.5 Modulspezifische Benutzerrechte |
350 |
|
|
18.6 Fazit |
351 |
|
|
19 Entwicklung einer Beispielanwendung |
352 |
|
|
19.1 Projekt planen |
352 |
|
|
19.2 Projekt einrichten |
354 |
|
|
19.3 Models erstellen |
356 |
|
|
19.3.1 Datenmodell definieren und Datenbank einrichten |
356 |
|
|
19.3.2 Datenspeicher erstellen mit Zend_Db_Table |
357 |
|
|
19.3.3 Infrastruktur für Models einrichten |
358 |
|
|
19.3.4 Konkrete Modelklassen erstellen |
360 |
|
|
19.4 Formulare erstellen |
365 |
|
|
19.4.1 Zend_Form erweitern |
365 |
|
|
19.4.2 Formularklassen erstellen |
367 |
|
|
19.5 Controller einrichten |
371 |
|
|
19.5.1 Benötigte Controller ermitteln |
371 |
|
|
19.5.2 Controller und Aktionsmethoden erstellen |
372 |
|
|
19.6 Views erstellen |
375 |
|
|
19.6.1 Seitenlayout |
376 |
|
|
19.6.2 Plug-In für die View Einrichtung |
377 |
|
|
19.6.3 View-Skripte |
378 |
|
|
19.7 Seitenleiste erstellen |
381 |
|
|
19.7.1 Plug-In zum Aufbau des ActionStacks |
381 |
|
|
19.7.2 Aktionsmethode für Seitenleiste |
382 |
|
|
19.7.3 View-Skript für Seitenleiste |
383 |
|
|
19.8 Benutzermanagement |
385 |
|
|
19.8.1 Benutzerrechte |
385 |
|
|
19.8.2 Plug-In für Autorisierung |
386 |
|
|
19.8.3 Action-Controller für Benutzermanagement |
387 |
|
|
19.9 Volltextsuche erstellen |
388 |
|
|
19.9.1 Suchdokument für Artikel |
389 |
|
|
19.9.2 Action-Controller für Volltextsuche |
389 |
|
|
19.10 Mehrsprachigkeit |
391 |
|
|
19.10.1 Plug-In zum Festlegen des Locales |
391 |
|
|
19.10.2 Übersetzungsdateien |
392 |
|
|
19.11 Fazit |
393 |
|
|
20 Testen von Anwendungen |
394 |
|
|
20.1 Einführung |
394 |
|
|
20.2 Testumgebung einrichten |
395 |
|
|
20.3 System und Konfiguration testen |
397 |
|
|
20.4 Routing testen |
401 |
|
|
20.5 Benutzerrechte testen |
403 |
|
|
20.6 Formulare testen |
405 |
|
|
20.7 Models testen |
410 |
|
|
20.7.1 Datenquellen simulieren |
410 |
|
|
20.7.2 Zend_Db_Table testen |
411 |
|
|
20.7.3 Modelklassen testen |
413 |
|
|
20.8 Views testen |
416 |
|
|
20.9 Controller testen |
421 |
|
|
20.9.1 Testfall erweitern |
422 |
|
|
20.9.2 Einfacher Unit-Test für Controller |
423 |
|
|
20.9.3 Komplizierter Unit-Test für Controller |
425 |
|
|
20.10 Ausblick Selenium |
428 |
|
|
21 Refaktorierung von Anwendungen |
430 |
|
|
21.1 Stufe 1: die grauenvolle Anwendung |
430 |
|
|
21.2 Stufe 2: Konfiguration und Controller |
433 |
|
|
21.3 Stufe 3: Layout- und View-Skripte |
434 |
|
|
21.4 Stufe 4: Zend_Db einsetzen |
437 |
|
|
21.5 Weitere Möglichkeiten zur Refaktorierung |
442 |
|
|
Teil IV – Anhang |
444 |
|
|
A Ausblick auf Zend Framework 1.8 |
446 |
|
|
A.1 Zend_Application |
446 |
|
|
A.1.1 Bootstrap-Ressourcen |
447 |
|
|
A.1.2 Zend_Application mit Konfigurationsdatei verwenden |
447 |
|
|
A.1.3 Zend_Application direkt konfigurieren |
448 |
|
|
A.1.4 Zend_Application mit Bootstrap-Klasse verwenden |
448 |
|
|
A.2 Zend_Tool |
449 |
|
|
A.2.1 Zend_Tool einrichten |
449 |
|
|
A.2.2 Zend_Tool Provider |
450 |
|
|
A.2.3 Mit Zend_Tool ein Projekt anlegen |
451 |
|
|
A.2.4 Fazit und Ausblick |
452 |
|
|
B Entwurfsmuster im Zend Framework |
454 |
|
|
B.1 Model-View-Controller |
454 |
|
|
B.1.1 Ablauf im Model-View-Controller |
454 |
|
|
B.1.2 Drei-Schichten-Modell |
456 |
|
|
B.1.3 Das Model allgemein |
456 |
|
|
B.1.4 Das Model im Zend Framework |
457 |
|
|
B.1.5 Der View allgemein |
458 |
|
|
B.1.6 Der View im Zend Framework |
458 |
|
|
B.1.7 Der Controller allgemein |
459 |
|
|
B.1.8 Der Controller im Zend Framework |
460 |
|
|
B.2 Front-Controller |
461 |
|
|
B.3 Action-Controller |
461 |
|
|
B.4 Registry |
461 |
|
|
B.5 Singleton |
462 |
|
|
B.6 View-Helper |
462 |
|
|
B.7 Row-Data-Gateway |
462 |
|
|
B.8 Table-Data-Gateway |
463 |
|
|
B.9 Adapter |
463 |
|
|
Stichwortverzeichnis |
464 |
|