Stefan Priebsch Enterprise PHP Tools Werkzeuge und Methoden für einen effizienten Entwicklungsprozess intwrckier.press
Vorwort 9 1 Einführung 11 1.1 Unternehmensanwendungen und PHP 11 1.2 Der Entwicklungsprozess für Unternehmenssoftware 11 1.3 Systemvoraussetzungen und Konventionen 12 1.4 Der Stand der Dinge 13 1.5 Wie man dieses Buch lesen sollte 14 2 PHP-Proqramme analysieren 15 2.1 Wozu PHP-Programme analysieren? 15 Fehlersuche mit Stack Traces 16 Tracing: den Programmablauf protokollieren 17 Profiling: das Laufzeitverhalten analysieren 18 Code Coverage: die Codeabdeckung ermitteln 20 Debugging: interaktive Fehlersuche 20 2.2 Die PHP-Erweiterung xdebug 22 Features 22 Alternativen 23 2.3 Installation und Konfiguration 23 xdebug unter Linux installieren 23 xdebug unter Windows installieren 26 xdebug konfigurieren 28 2.4 Arbeiten mit xdebug 29 Die verbesserte v a r_d ump () -Ausgabe 29 Fehlermeldungen mit Aufrufhistorie 30 Beschränkung der Rekursionstiefe 34 Lracing: den Programmablauf protokollieren 38 Profiling: Laufzeit und Speicherverbrauch messen 42 Debugging: Fehlersuche 52 Code Coverage: Code-Abdeckung ermitteln 57 2.5 Ausblick 60 2.6 Links und Literatur 60 Enterprise PHP Tools 5
3 3.1 3.2 3.3 3.4 3.5 3.6 4 4.1 4.2 4.3 4.4 Quellcode-Versionsverwaltung Wozu Versionsverwaltung? Von Release zu Release Gleichzeitige Änderungen koordinieren Ein zentrales Repository Arbeitskopien und Änderungen Binärdateien und Sperren Verzweigte Entwicklung Versionsverwaltung mit Subversion Der Vorläufer: CVS Der Nachfolger: Subversion Alternativen zu Subversion Installation und Konfiguration Die Installation planen Installation unter Linux Installation unter Windows Das erste Repository anlegen Konfiguration des Standalone-Servers Konfiguration von Subversion mit WebDAV Arbeiten mit Subversion Das Repository strukturieren svn import: Dateien in das Repository importieren svn checkout: Eine Arbeitskopie erzeugen svn add: Dateien zur Arbeitskopie hinzufügen svn commit: Die Arbeitskopie ins Repository übertragen svn rename: VersionskontroUierte Dateien umbenennen und verschieben svn delete: VersionskontroUierte Dateien und Verzeichnisse löschen svn Status: Den Status der Arbeitskopie prüfen svn update: Die Arbeitskopie aktualisieren svn revert: Änderungen in der Arbeitskopie rückgängig machen svn resolved: Konflikte behandeln und auflösen Ausblick Links und Literatur Software testen Automatische Tests PHPUnit Features Alternativen Installation Unit Tests Tests organisieren Der erste Unit Test Zusicherungen 63 63 64 65 68 70 71 73 74 75 75 76 77 77 81 89 96 96 97 100 101 101 103 104 104 106 107 108 109 110 111 113 114 117 119 120 120 121 121 123 124 126 131
Exceptions testen 137 Testumgebung: setupo und teardoumo 140 Test-Skelette und unvollständige Tests 141 4.5 Akzeptanztests 144 Eine einfache Webtest-Klasse 146 Akzeptanztests für eine Webanwendung 154 4.6 Ausblick 156 4.7 Links und Literatur 157 5 Schnittstellen-Dokumentation 159 5.1 API-Dokumentation automatisch erzeugen 161 5.2 PHPDocumentor 162 Features 162 PHPDocumentor und PHP 4 162 PHPDocumentor und PHP 5 163 Alternativen 163 5.3 Installation 164 5.4 Arbeiten mit PHPDocumentor 166 Quellcode-Dokumentation: DocBlocks 166 Dokumentation erzeugen 172 Eine Datei dokumentieren 177 Die Dokumentation strukturieren 178 Eine Klasse dokumentieren 179 Funktion und Methoden dokumentieren 182 Variablen und Member dokumentieren 185 include und require dokumentieren 187 Das PHPDocumentor-Fehlerprotokoll 188 Der Index der Elemente 190 Die zentrale To-do-Liste 191 Autor, Copyright, Lizenz und Version dokumentieren 192 Die Gültigkeit von Elementen dokumentieren 193 Links und Querverweise verwenden 196 Die unterschiedlichen Ausgabeformate 199 5.5 Ausblick 200 5.6 Links und Literatur 201 6 Build-Automation 203 6.1 Warum ein Build-Prozess für PHP? 204 6.2 phing 205 Features 205 Alternativen 206 6.3 Installation 206 Enterprise PHP Tools 7
6.4 Einfache Build-Automation mit phing 209 Die erste Build-Datei erstellen 209 Datei-Operationen: copy, move, mkdir und delete 214 Mapper: Dateinamen verändern 218 Variablen im Buildfile: Properties 222 Datei-Inhalte verändern: Filter 223 Ein- und Ausgaben 227 Externe Programme aufrufen 231 6.5 Fortgeschrittene Build-Automation mit phing 233 Syntaxprüfung von PHP-Programmen 233 API-Dokumentation erzeugen 235 Tests automatisieren 236 Die Codeabdeckung analysieren 240 ZIP- und tar-archive erzeugen 243 PEAR-Pakete erzeugen 244 6.6 Ausblick 247 6.7 Links und Literatur 248 7 7.1 7.2 7.3 7.4 7.5 7.6 Visualisierung von Testsystemen Wozu Testsysteme virtualisieren? VMware Workstation Features Alternativen Installation Linux Windows Mit VMware arbeiten Eine virtuelle Maschine anlegen Mit virtuellen Maschinen arbeiten Mit Snapshots arbeiten Ausblick Links und Literatur Stichwortverzeichnis 273 251 252 254 254 256 257 257 258 259 259 267 269 271 271.ntwickser