2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Stefan Priebsch Werkzeuge und Methoden für einen effizienten Entwicklungsprozess ntwickier
Vorwort 9 1 Einführung 11 1.1 Unternehmensanwendungen und PHP 11 1.2 Der Entwicklungsprozess für Unternehmenssoftware 11 1.3 System Voraussetzungen 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 u mp () -Ausgabe 29 Fehlermeldungen mit Aufrufhistorie 30 Beschränkung der Rekursionstiefe 34 Tracing: 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
3 Quellcode-Versionsverwaltung 63 3.1 Wozu Versionsverwaltung? 63 Von Release zu Release 64 Gleichzeitige Änderungen koordinieren 65 Ein zentrales Repository 68 Arbeitskopien und Änderungen 70 Binärdateien und Sperren 71 Verzweigte Entwicklung 73 3.2 Versionsverwaltung mit Subversion 74 Der Vorläufer: CVS 75 Der Nachfolger: Subversion 75 Alternativen zu Subversion 76 3.3 Installation und Konfiguration 77 Die Installation planen 77 Installation unter Linux 81 Installation unter Windows 89 Das erste Repository anlegen 96 Konfiguration des Standalone-Servers 96 Konfiguration von Subversion mit WebDAV 97 3.4 Arbeiten mit Subversion 100 Das Repository strukturieren 101 svn import: Dateien in das Repository importieren 101 svn checkout: Eine Arbeitskopie erzeugen 103 svn add: Dateien zur Arbeitskopie hinzufügen 104 svn commit: Die Arbeitskopie ins Repository übertragen 104 svn rename: Versionskontrollierte Dateien umbenennen und verschieben 106 svn delete: Versionskontrollierte Dateien und Verzeichnisse löschen 107 svn status: Den Status der Arbeitskopie prüfen 108 svn update: Die Arbeitskopie aktualisieren 109 svn revert: Änderungen in der Arbeitskopie rückgängig machen 110 svn resolved: Konflikte behandeln und auflösen 111 3.5 3.6 4 4.1 4.2 4.3 4.4 Ausblick Links und Literatur Software testen Automatische Tests PHPUnit Features Alternativen Installation Unit Tests Tests organisieren Der erste Unit Test Zusicherungen 113 114 117 119 120 120 121 121 123 124 126 131
Exceptions testen 137 Testumgebung: setupo und teardowno 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 indude 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
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 Virtualisierunq von Testsystemen 251 7.1 Wozu Testsysteme virtualisieren? 252 7.2 VMware Workstation 254 Features 254 Alternativen 256 7.3 Installation 257 Linux 257 Windows 258 7.4 Mit VMware arbeiten 259 Eine virtuelle Maschine anlegen 259 Mit virtuellen Maschinen arbeiten 267 Mit Snapshots arbeiten 269 7.5 Ausblick 271 7.6 Links und Literatur 271 Stichwortverzeichnis 273