ZEND Framework im Einsatz

Rob Allen, Nick Lo, Steven Brown

ZEND Framework im Einsatz

2009

470 Seiten

Format: PDF, Online Lesen

E-Book: €  31,99

E-Book kaufen

E-Book kaufen

ISBN: 9783446421370

 

Inhalt

6

Vorwort

14

Über dieses Buch

18

Für wen ist dieses Buch gedacht?

18

Weitere Informationen über das Zend Framework

19

Roadmap

19

Codekonventionen und Downloads

21

Author Online

21

Über die Buchreihe

22

Teil I – Die Grundlagen

24

1 Das Zend Framework –Eine Einführung

26

1.1 Die Struktur von PHP-Websites

27

1.2 Gründe für das Zend Framework

29

1.2.1 Alles ist gleich out of the box vorhanden

29

1.2.2 Modernes Design

30

1.2.3 Leicht zu erlernen

30

1.2.4 Vollständige Dokumentation

31

1.2.5 Einfachere Entwicklung

32

1.2.6 Schnelle Entwicklung

32

1.2.7 Strukturierter, leicht zu pflegender Code

32

1.3 Was ist das Zend Framework?

33

1.3.1 Woher stammt das Framework?

33

1.3.2 Was ist darin enthalten?

34

1.4 Die Designphilosophie des Zend Frameworks

40

1.4.1 Komponenten von hoher Qualität

40

1.4.2 Pragmatismus und Flexibilität

41

1.4.3 Saubere Klärung der Rechte auf geistiges Eigentum

41

1.4.4 Support von Zend Technologies

41

1.5 Alternative PHP-Frameworks

42

1.6 Zusammenfassung

43

2 Hello Zend Framework!

44

2.1 Das Designpattern Model-View-Controller

45

2.1.1 Das Model

46

2.1.2 Die View

46

2.1.3 Der Controller

46

2.2 Die Anatomie einer Zend Framework-Applikation

47

2.2.1 Das Verzeichnis application

47

2.2.2 Das Verzeichnis library

48

2.2.3 Das Verzeichnis tests

48

2.2.4 Das Verzeichnis public

48

2.3 Hello World: Datei für Datei

49

2.3.1 Bootstrapping

49

2.3.2 Apache .htaccess

51

2.3.3 Index-Controller

52

2.3.4 View-Template

53

2.4 Wie MVC im Zend Framework angewendet wird

55

2.4.1 Der Controller im Zend Framework

56

2.4.2 Arbeit mit dem Zend_View

60

2.4.3 Das Model in MVC

64

2.5 Zusammenfassung

68

Teil II – Eine Basisapplikation

70

3 Websites mit dem ZendFramework erstellen

72

3.1 Erste Planungsarbeiten für eine Website

73

3.1.1 Die Ziel der Site

73

3.1.2 Das Design der Benutzerschnittstelle

75

3.1.3 Den Code planen

77

3.2 Die ersten Programmzeilen

78

3.2.1 Die Verzeichnisstruktur

78

3.2.2 Die Bootstrap-Klasse

79

3.2.3 Der Start der Applikation

84

3.3 Die Homepage

84

3.3.1 Die grundlegenden Models

85

3.3.2 Tests der Models

87

3.3.3 Der Homepage-Controller

90

3.4 Zusammenfassung

95

4 Die View erstellen

96

4.1 Die Patterns Two-Step-View und Composite-View

97

4.2 Zend_Layout und die Arbeit mit Views

98

4.3 Die Integration von Zend_Layout in Places

99

4.3.1 Setup

99

4.3.2 Layout-Skripte

101

4.3.3 Allgemeine Actions anhand von Platzhaltern

105

4.3.4 Das View-Skript für die Homepage

109

4.4 Fortgeschrittene View-Hilfsklassen

111

4.4.1 Die Integration von Controllern

112

4.4.2 Die Verwaltung der View-Skripte

114

4.4.3 Hilfsklassen für HTML-Kopfzeilen

115

4.5 Zusammenfassung

120

5 Ajax

122

5.1 Kurze Einführung in Ajax

122

5.1.1 Definition von Ajax

123

5.1.2 Ajax in Webapplikationen

124

5.2 Ein einfache Beispiel für Ajax

126

5.3 Die Arbeit mit Client-Libraries für Ajax

129

5.4 Ajax im Zend Framework

131

5.4.1 Der Controller

132

5.4.2 Die View

133

5.5 Integration in eine Zend Framework-Applikation

134

5.5.1 Der Place-Controller

135

5.5.2 Das View-Skript mit HTML fürs Rating ergänzen

137

5.5.3 JavaScript in die View-Skripte einbauen

138

5.5.4 Der Server-Code

141

5.6 Zusammenfassung

143

6 Mit der Datenbank arbeiten

144

6.1 Datenbankabstraktion mit Zend_Db_Adapter

144

6.1.1 Einen Zend_Db_Adapter erstellen

145

6.1.2 Die Datenbankabfrage

146

6.1.3 Einfügen, Aktualisieren und Löschen

147

6.1.4 Spezifische Unterschiede zwischen den Datenbanken

149

6.2 Tabellenabstraktion mit Zend_Db_Table

149

6.2.1 Was ist das Table-Data-Gateway-Pattern?

150

6.2.2 Die Arbeit mit Zend_Db_Table

151

6.2.3 Einfügen und Aktualisieren mit Zend_Db_Table

152

6.2.4 Einträge mit Zend_Db_Table löschen

154

6.3 Zend_Db_Table als Model

155

6.3.1 Das Model testen

157

6.3.2 Tabellenbeziehungen mit Zend_Db_Table

162

6.4 Zusammenfassung

166

7 Benutzerauthentifizierung undZugriffskontrolle

168

7.1 Benutzerauthentifizierung und Zugriffskontrolle

168

7.1.1 Was ist Authentifizierung?

169

7.1.2 Was ist Zugriffskontrolle?

169

7.2 Die Implementierung der Authentifizierung

170

7.2.1 Die Komponente Zend_Auth

170

7.2.2 Einloggen über die HTTP-Authentifizierung

171

7.3 Zend_Auth in einer echten Applikation

174

7.3.1 Das Einloggen

174

7.3.2 Eine Begrüßungsnachricht in der View-Hilfsklasse

178

7.3.3 Das Ausloggen

179

7.4 Die Implementierung der Zugriffskontrolle

180

7.4.1 Die Arbeit mit Zend_Acl

181

7.4.2 Die Konfiguration eines Zend_Acl-Objekts

183

7.4.3 Das Zend_Acl-Objekt prüfen

184

7.5 Zusammenfassung

188

8 Formulare

190

8.1 Die Arbeit mit Zend_Form

191

8.1.1 Integrierte Datenfilter und Validatoren

191

8.1.2 Integrierte Fehlerbehandlung

194

8.1.3 Dekoratoren zur Vereinfachung des Markups

194

8.1.4 Plug-in-Loader zur eigenen Anpassung

195

8.1.5 Internationalisierung

196

8.1.6 Unterformulare und Displaygroups

196

8.2 Ein Login-Formular erstellen

197

8.2.1 Pfade einrichten

197

8.2.2 Das Formular-View-Skript

197

8.2.3 Aktualisierung der Controller-Action AuthController

198

8.2.4 Die Basisklasse für das Login-Formular

200

8.3 Filtern und Validieren

201

8.3.1 Einfaches Filtern und Validieren

201

8.3.2 Eigene Fehlermeldungen

202

8.3.3 Die Internationalisierung des Formulars

203

8.3.4 Selbst erstellte Validatoren

205

8.4 Die Dekoration des Login-Formulars

207

8.4.1 Standarddekoratoren von Zend_Form

207

8.4.2 Eigene Dekoratoren setzen

207

8.5 Zusammenfassung

211

9 Suchfunktionen

212

9.1 Die Vorteile einer Suchfunktion

212

9.1.1 Zentrale Usability-Probleme der User

213

9.1.2 Die Rangliste der Resultate ist wichtig

213

9.2 Die Komponente Zend_Search_Lucene

213

9.2.1 Einen separaten Suchindex für Ihre Website erstellen

214

9.2.2 Leistungsfähige Abfragen

216

9.2.3 Best Practices

221

9.3 Eine Suchfunktion für Places

222

9.3.1 Indexaktualisierung bei neu eingefügten Inhalten

223

9.3.2 Erstellen des Suchformulars und Darstellung der Ergebnisse

232

9.4 Zusammenfassung

235

10 E-Mails

236

10.1 Die Grundlagen von E-Mails

236

10.1.1 E-Mails – einfach dargestellt

237

10.1.2 Analyse einer E-Mail-Adresse

238

10.2 Die Arbeit mit Zend_Mail

238

10.2.1 E-Mails mit Zend_Mail erstellen

239

10.2.2 E-Mails mit Zend_Mail versenden

240

10.3 Einen Support-Tracker für Places erstellen

243

10.3.1 Die Applikation entwerfen

243

10.3.2 Integration von Zend_Mail in die Applikation

247

10.3.3 Header in der Support-E-Mail einfügen

249

10.3.4 Attachments an Support-E-Mails anhängen

250

10.3.5 Formatierung der E-Mail

251

10.4 Lesen von E-Mails

254

10.4.1 Abholen und Speichern von E-Mails

254

10.4.2 E-Mails mit der Applikation lesen

255

10.5 Zusammenfassung

259

11 Deployment

260

11.1 Den Server einrichten

260

11.1.1 Designen für verschiedene Umgebungen

261

11.1.2 Die Arbeit mit virtuellen Hosts in der Entwicklung

264

11.2 Versionskontrolle mit Subversion

266

11.2.1 Erstellen des Subversion-Repositorys

266

11.2.2 Code aus dem Repository auschecken

267

11.2.3 Änderungen ins Repository committen

268

11.2.4 Aktualisierung einer lokalen Arbeitskopie

269

11.2.5 Der Umgang mit Konflikten

270

11.2.6 Eine saubere Kopie aus dem Repository holen

272

11.2.7 Die Arbeit mit Branches

272

11.2.8 Externer Code

273

11.3 Funktionale Tests

273

11.3.1 Funktionales Testen mit Selenium IDE

274

11.3.2 Automatisierung der Selenium IDE-Tests

277

11.3.3 Funktionstests mit Zend_Http_Client

278

11.4 Das Skripting des Deployments

280

11.5 Zusammenfassung

281

Teil III – Machen Sie IhreApplikation leistungsfähiger

282

12 Der Austausch mitanderen Applikationen

284

12.1 Die Integration von Applikationen

285

12.1.1 Austausch strukturierter Daten

285

12.1.2 Produktion und Verarbeitung strukturierter Daten

286

12.1.3 Wie Webservices arbeiten

287

12.1.4 Aufgabengebiete für Webservices

288

12.2 Die Produktion und Verarbeitung von Feeds mitZend_Feed

289

12.2.1 Die Produktion eines Feeds

289

12.2.2 Die Verarbeitung eines Feeds

291

12.3 RPCs mit Zend_XmlRpc erstellen

292

12.3.1 Die Arbeit mit Zend_XmlRpc_Server

293

12.3.2 Die Arbeit mit Zend_XmlRpc_Client

301

12.4 Die Nutzung von REST-Webservices mit Zend_Rest

302

12.4.1 Was ist REST?

303

12.4.2 Die Arbeit mit Zend_Rest_Client

304

12.4.3 Die Arbeit mit Zend_Rest_Server

307

12.5 Zusammenfassung

309

13 Mashups mit öffentlichenWebservices

310

13.1 Der Zugriff auf öffentliche Webservices

311

13.1.1 Zend_Gdata

311

13.1.2 Zend_Service_Akismet

313

13.1.3 Zend_Service_Amazon

314

13.1.4 Zend_Service_Audioscrobbler

314

13.1.5 Zend_Service_Delicious

314

13.1.6 Zend_Service_Flickr

315

13.1.7 Zend_Service_Gravatar

315

13.1.8 Zend_Service_Nirvanix

315

13.1.9 Zend_Service_RememberTheMilk

316

13.1.10 Zend_Service_Simpy

316

13.1.11 Zend_Service_SlideShare

316

13.1.12 Zend_Service_StrikeIron

316

13.1.13 Zend_Service_Technorati

317

13.1.14 Zend_Service_Yahoo

317

13.2 Werbeanzeigen mit Amazon-Webservices darstellen

318

13.2.1 Die Amazon-Model-Klasse

318

13.2.2 Die View-Hilfsklasse amazonAds

320

13.2.3 Die View-Hilfsklasse cachen

321

13.3 Darstellen von Flickr-Bildern

324

13.3.1 Die Flickr-Model-Klasse

324

13.3.2 Flickr in einem Action-Controller verwenden

326

13.4 Mit Zend_Gdata auf Google zugreifen

328

13.4.1 Die YouTube-API in einem Action-Controller

329

13.4.2 Die Seite für die Videokategorien

330

13.4.3 Die Seite mit den Videolisten

331

13.4.4 Die Video-Seite

333

13.5 Zusammenfassung

334

14 Das Caching beschleunigen

336

14.1 Die Vorteile des Cachings

337

14.2 Die Funktionsweise des Cachings

337

14.3 Die Implementierung von Zend_Cache

341

14.3.1 Die Zend_Cache-Frontends

342

14.3.2 Zend_Cache-Backends

353

14.4 Caching auf verschiedenen Ebenen der Applikation

355

14.4.1 Was in den Cache soll

355

14.4.2 Optimale Verfallszeit des Caches

355

14.5 Cache-Tags

356

14.6 Zusammenfassung

357

15 Internationalisierung undLokalisierung

358

15.1 Die Übersetzung in andere Sprachen und Idiome

358

15.1.1 Die Übersetzung in andere Sprachen

359

15.1.2 Die Übersetzung von Idiomen

360

15.2 Die Arbeit mit Zend_Locale und Zend_Translate

360

15.2.1 Die Locales mit Zend_Locale setzen

360

15.2.2 Übersetzung mit Zend_Translate

362

15.3 Eine zweite Sprache für die Places-Applikation

364

15.3.1 Die Auswahl der Sprache

365

15.3.2 Das Front-Controller-Plug-in LanguageSetup

368

15.3.3 Die View übersetzen

370

15.3.4 Datum mit Zend_Locale korrekt darstellen

372

15.4 Zusammenfassung

374

16 PDFs erstellen

376

16.1 Die Grundlagen von Zend_Pdf

377

16.1.1 Erstellen oder Laden von Dokumenten

377

16.1.2 Seiten im PDF-Dokument erstellen

377

16.1.3 Metainformationen im Dokument einfügen

378

16.1.4 Speichern des PDF-Dokuments

380

16.2 Einen PDF-Berichtsgenerator erstellen

380

16.2.1 Das Model für das Berichtsdokument

380

16.2.2 Das Model für die Berichtsseite

381

16.3 Text auf einer Seite zeichnen

383

16.3.1 Die Wahl der Fonts

383

16.3.2 Den Font setzen und Text einfügen

383

16.3.3 Umbrochenen Text einfügen

384

16.4 Die Arbeit mit Farben

386

16.4.1 Die Wahl der Farben

386

16.4.2 Farben einstellen

386

16.5 Die Arbeit mit Styles

387

16.6 Formen zeichnen

388

16.6.1 Linien zeichnen

388

16.6.2 Gestrichelte Linien setzen

388

16.6.3 Rechtecke und Polygone zeichnen

390

16.6.4 Das Zeichnen von Kreisen und Ellipsen

392

16.7 Objekte drehen

393

16.8 Bilder auf der Seite einfügen

394

16.9 Objekte mit Schnittmasken zeichnen

395

16.10 Generierung von PDF-Berichten

395

16.11 Zusammenfassung

397

A Die PHP-Syntax imSchnelldurchgang

398

A.1 PHP-Grundlagen

399

A.2 Variablen und Typen

400

A.3 Strings

401

A.3.1.1 Strings in einfachen Anführungszeichen

402

A.3.1.2 Strings in doppelten Anführungszeichen

402

A.3.1.3 Heredoc-Strings

403

A.3.1.4 Nowdoc-Strings

403

A.4 Arrays

404

A.5 Bedingungen und Schleifen

405

A.5.1 Bedingungen

405

A.5.2 Schleifen

406

A.6 Alternative Syntax für den verschachtelten Block

409

A.7 Funktionen

409

A.8 Zusammenfassung

410

B Objektorientiertes PHP

412

B.1 Objektorientierung in PHP

413

B.1.1 Klassen, Objekte und Vererbung

413

B.1.2 Erweitern von Klassen

416

B.1.3 Abstrakte Klassen und Interfaces

416

B.1.4 Magische Methoden

419

B.2 Die Standard PHP Library

422

B.2.1 Die Arbeit mit Iteratoren

422

B.2.2 Die Arbeit mit ArrayAccess und Countable

424

B.3 PHP4

425

B.4 Software-Designpatterns

425

B.4.1 Das Singleton-Designpattern

425

B.4.2 Das Registry-Designpattern

427

B.5 Zusammenfassung

429

C Tipps und Tricks

430

C.1 Tipps und Tricks für MVC

431

C.1.1 Module

431

C.1.2 Case Sensitivity

434

C.1.3 Routing

436

C.2 Diagnostik mit Zend_Log und Zend_Debug

439

C.2.1 Zend_Debug

439

C.2.2 Zend_Log

439

C.3 Zend_Db_Profiler

441

C.4 Zusammenfassung

444

Register

446

 

© 2009-2024 ciando GmbH