Richard Samar (Hrsg.), Christian Stocker (Hrsg.), Andre Gildemeister, Hannes Gassert, Matthias Lehn
PHP de Luxe PHP 5 Edition
Inhaltsverzeichnis
s Werkes darf in irgendfahren) ohne schriftliche elektronischer Systeme immt keine Gewähr für »esondere übernimmt er olgeschäden. >ezeichnungen usw. in t zu der Annahme, dass esetzgebung als frei zu
VLandsberg
Vorwort und Danksagung
15
Einleitung
19
1
PHP - Geschichte, Aufbau und Neuheiten
33
1.1 1.1.1 1.1.2
Was ist PHP? - Geschichte und Entwicklung Historischer Rückblick Die Open-Source-Entwicklergemeinde
33 34 35
1.2 1.2.1 1.2.2
Der technische Aufbau von PHP Die Zend Engine-Architektur Der Aufbau von serverseitigen Extensions
36 36 37
1.3 1.3.1 1.3.2 1.3.3 1.3.4
Was ist neu in PHP 5? Neue Sprachmittel Neuerungen der Extensions PEAR PECL: PHP Extension Community Library
38 38 38 39 39
2
PHP 5: Neuheiten und Migration
41
2.1
Objektorientierte Programmierung und PHP 5
41
2.2
Der strenge Modus: E_STRICT
42
2.3 2.3.1
Objektmodell und Konzept von PHP 5 Das Objekt als Referenztyp
43 43
2.3.2
Erschaffen und Zerstören von Objekten
45
2.4
Datenkapselung mit public, private und protected
47
2.5
Class Type hints
52
2.6 2.6.1
Const, Static und der Klassenkontext Statische Eigenschaften und Methoden
53 54
2.7 2.7.1 2.7.2 2.7.3
Interfaces und Abstrakte Klassen Schnittsteilendefinition mit Interfaces Abstrakte Klassen Interfaces und abstrakte Klassen: Eine Gegenüberstellung
55 55 56 58
Inhaltsverzeichnis
2.8 2.8.1 2.8.2 2.8.3 2.8.4
Die magischen Underscores set() und get() _call() und _toString() autoload clone
59 59 61 63 64
2.9 2.9.I
Schleifen, Objekte und Referenzen Fehlerbehandlung mit Exceptions
64 71
2.IO 2.IO.I 2.IO.2 2.IO.3
Der Umstieg von Version 4 zu 5 Änderungen am Code Änderungen bei der Installation Neue Funktionen
76 76 77 78
2.II
Fazit
80
Konzepte und Tools für die Webentwicklung
81
3.1.3 3.1.4
Editoren und IDEs Einführung Features von Editoren PHP-IDEs in der Detailbetrachtung Fazit
82 82 83 86 98
3.2 3.2.1 3.2.2 3.2.3 3.2.4
PHP-Debugger Einführung Xdebug Beschaffung und Installation der Tools Testskript und Debugdemonstration
98 98 99 104 107
3-3 3.3.1 3.3.2 3-3-3 3.3.4
API-Dokumentationen in PHP Dokumentations-Tools Warum Dokumentation? phpDocumentor Fazit
115 116 117 119 132
3-4 3.4.1 3.4.2 3.4.3 3.4.4
CVS Repository von PHP Einführung Verwendung von CVS Einen eigenen CVS Account beantragen Einbindung fremder Extensionen
132 132 134 138 139
3-5 3.5.1 3.5.2 3-5-3 3.5.4
PEAR: PHP Extension and Application Repository Was ist PEAR? Vefügbare PEAR-Packages Installation von PEAR- und PEAR/PECL-Modulen Wie benutze ich PEAR-Pakete
140 140 141 143 148
3- 1 3.1.1 3.1.2
3-57 3.5.8
Die PEAR-Basisk PEAR Coding Sta Zu PEAR beitrag« Zukunft
3-6 3.6.1 3.6.2 3.6.3 3.6.4 3-6-5 3.6.6
Template-Engine Einführung PHP Template-Ei Smarty - Compil XSLT-Mehr als Performance Ver Fazit
4
PHP 5 und Dater
4.1
Neue Features in
4.2
4.2.3 4.2.4
PHP und MySQI Installation Zugriff auf MyS( Zugriff auf MyS( MySQLi - Die nc
4.3 4.3.1 4.3.2 4.3.3 4.3.4 4.3.5
PHP und Postgr« PostgreSQL - Mi Beschaffung und Zugriff auf Postg Zugriff auf Post^ PHP API für Pos
4-4 4.4.1 4.4.2 4.4.3 4.4.4
PHP und Oracle Oracle TerminoL Beschaffung, Ins Zugriff auf Oracl PHP API für Or;
Die PEAR-Basisklasse PEAR Coding Standards Zu PEAR beitragen Zukunft
149 154 155 158
Template-Engines Einführung PHP Template-Engines in der Detailbetrachtung Smarty - Compiling Template-Engine XSLT - Mehr als eine mächtige Alternative Performance Vergleich Fazit
158 159 160 165 172 173 174
PHP 5 und Datenbanken
177
Neue Features in MySQL
179
PHP und MySQL Installation Zugriff auf MySQL ohne PHP Zugriff auf MySQL mit einem PHP-basierten Tool MySQLi - Die neue verbesserte MySQL/PHP 5 API
189 190 191 193 197
PHP und PostgreSQL 215 PostgreSQL - Mehr als nur eine Alternative für Webanwendungen . 216 Beschaffung und Installation 217 Zugriff auf PostgreSQL ohne PHP 219 Zugriff auf PostgreSQL mit einem PHP basierenden Tool 223 PHP API für PostgreSQL 226 PHP und Oracle Oracle Terminologie Beschaffung, Installation, Konfiguration Zugriff auf Oracle ohne PHP PHP API für Oracle
233 233 235 252 256
PEAR Komponenten für Datenbanken Einführung PEAR::DB PEAR::MDB2 DB_QueryTool DB_DataObject
272 272 272 288 294 298
PHP 5 und SQLite Fetchmodi Query-Funktionen
301 302 303
Inhaltsverzeichnis
4.6.3 4.6.4 4.6.5 4.6.6 4.6.7 4.6.8 4.6.9 4.6.10
Bewegen im Resultset Datenbank-Informationen PHP-Funktionen mit SQL aufrufen Fetch Funktionen Sonstige Funktionen Typenlosigkeit Administration Fazit
303 303 304 306 306 307 307 308
5
Zeichenmanipulation und mehr
309
5.1 5.1.1 5.1.2 5.1.3 5.1.4
PHP und Arrays Einführung Array-Funktionen Beispiele mit Arrays Fazit
309 310 314 321 328
5.2 5.2.1 5.2.2
Stringverarbeitung Grundlagen von Strings in PHP Stringfunktionen
328 328 336
5.3 5.3.1 5.3.2 5.3.3
Reguläre Ausdrücke mit PCRE Einführung Aufbau von Regulären Ausdrücken PCRE-Funktionen von PHP
6.4 Validierung 6.4.1 DTD 6.4.2 XML Schema 6.4.3 R e l a x N G 6.4.4 Error Reporting
400 401 402 404
405
6.5 6.5.1 6.5.2 6.5.3 6.5.4 6.5.5
XSLT Was ist XSLT? Die XSL-Extension XSLT-Syntax PHP-Syntax PHP-Funktionen aus XSLT aufrufen
406 406 407 409 419 421
6.6 6.6.1 6.6.2 6.6.3 6.6.4 6.6.5
SAX-XML-Parser Grundlegende Funktionen eines XML-Parser-Objekts Optionen Weitere Callback-Funktionen Error-Funktionen Weitere Funktionen
422 423 425 426 428 430
6.7 6.7.1 6.7.2 6.7.3 6.7.4
xmlReader Syntax Validierung Konvertierung zu DOM Nodes Eazit
430 433 435 436 437
6.8 6.8.1 6.8.2 6.8.3 6.8.4 6.8.5 6.8.6
SimpleXML Beispiel Namespaces xp ath Konvertierung von und zu DOM Mixed Content-Probleme Fazit
437 438 439 439 440 440 441
7
On-the-Fly Erzeugung von Bildern und PDF-Dokumenten
443
7.1 7.1.1 7.1.2
On-the-fly Bilder erzeugen GD Graphen oder Balkendiagramme mit PEAR::Image_Graph generieren
443 444 450
Inhaltsverzeichnis
1O
7.1.3
Image Magick Extension
455
7.2 7.2.1 7.2.2 7.2.3 7.2.4 7.2.5 7.2.6
On-the-fly PDF erzeugen Das Adobe Portable Document Format Auswahl der richtigen PDF-Bibliothek für den Einsatz in PHP . . . . PDFlib Generierung einer Rechnung mit der PDFlib Alternative PDF-Bibliotheken für PHP Fazit
458 459 460 462 473 482 486
8
PHP und Netzwerkfunktionen
487
8.1 8.1.1 8.1.2 8.1.3
Mail und News Die Mail-Funktion von PHP Mails mit PEAR-Klassen senden Mails/news lesen mit IMAP
487 488 489 500
8.2 8.2.1 8.2.2 8.2.3 8.2.4
LDAP Einführung Zugriff auf OpenLDAP LDAP-API von PHP LDAP-Zugriff über PEAR::Auth
521 521 525 531 540
8.3 8.3.1 8.3.2
Socketprogrammierung Einführung in Sockets Socket-Funktionen in PHP
Umsetzung Klassenattribute Konstruktor Funktionen zur Transformation zwischen Arrays und XML Einfügen von Daten Einfügen von Daten aus Formularen Löschen von Daten Abrufen von Daten Suche von Daten XSL-Transformation Diverse Funktionen
726 727 728 728 733 736 737 739 741 743 746
12.3
Fazit
748
13
Projekt: Adressbuch
749
13.1
Einleitung
749
13.2 13.2.1 13.2.2 13.2.3
Umsetzung Übersicht in HTML Editieren Ausgabe in WML
749 749 755 759
13.3
Fazit
764
14
Projekt: Ein Präsentationssystem mit XML und WYSIWYG
14.1
14.3.2 Popoon 14.3.3 BXE 14.3.4 Fazit A
PHP installiere!
A.i A.1.1 A.i.2 A.1.3 A.1.4 A.i. 5 A.1.6
Beschaffung un Beschaffung vo Hinweise für di PHP-Installatio PHP-Installatio Installation ver PHP testen...
A.2 A.2.1 A.2.2
php.ini: Konfig Einstellungen ] Sonstige Einst(
B
Beispieldatenb
B.i
Aufbau und D
B.2
Beispieldatenl:
B.3
Beispieldatenl:
B.4
Beispieldatenl
B.5
Beispieldatenl
C
Externe und v
C.i C.1.1 C.1.2 C.1.3 C.i.4
Buchtipps zu Datenbanken XML/XSLT. OOP und Sof Andere Then
765
C.2 C.2.1 C.2.2 C.2.3 C.2.4
WWW . . . . PHP Datenbanker Andere Therj Webseiten/B
Einleitung
765
C.3
Mailinglister
14.2
Anforderungen an die Software
765
C.4
IRC
14.3 14.3.1
Drei Teilsysteme SlideML
766 766
Stichwortvei
Inhaltsverzeichnis
und ITX
707 707 707 708 708 709 710 723
itung von 725 725
und XML
726 727 728 728 733 736 737 739
BXE
767
14.3.3 14.3.4 Fazit
774
A
PHP installieren und konfigurieren
779
A1 A.1.1 A.1.2 A.1.3 A.1.4 A.1.5 A.1.6
Beschaffung und Installation Beschaffung von PHP Hinweise für die PHP 5-Installation PHP-Installation auf Linux PHP-Installation auf Windows Installation verschiedener Extensions PHP testen
779 780 781 781 790 795 816
A.2 A.2.1 A.2.2
php.ini: Konfiguration nach der Installation Einstellungen für Sicherheit und Performance Sonstige Einstellungen
819 819 822
B
Beispieldatenbank
825
B.1
Aufbau und Datenbankstruktur
825
B.2
Beispieldatenbank für MySQL
827
777
B.3
Beispieldatenbank für PostgreSQL
828
741 743 746
B.4
Beispieldatenbank für Oracle
829
B.5
Beispieldatenbank für SQLite
829
748
C
Externe und weiterführende Quellen
831
749
C.1 C.1.1 C.1.2 C.1.3 C.1.4
Buchtipps zu anderen Themen Datenbanken XML / XSLT OOP und Softwaretechnik Andere Themengebiete
831 831 831 832 832
765
C.2 C.2.1 C.2.2 C.2.3 C.2.4
WWW PHP Datenbanken Andere Themengebiete Webseiten/Blogs der Autoren