Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 11 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
11
Dung lượng
1 MB
Nội dung
5 – Projektpraxis 420 im Windows-Helpfile-Format (CHM) als Docbook XML Die HTML-Versionen der Dokumentation sind dabei am weitesten verbreitet. Der Vorteil liegt darin, dass auf Verweise zu anderen Klassen und deren Methoden über Hyperlinks zugegriffen werden kann. Dadurch entsteht ein Mehrwert im Vergleich zu einer rein tex- tuellen Dokumentation. Abbildung 5.49: Eine mit PHPDocumentator erstellte HTML-Dokumentation Fehler finden mit XDebug Beim Erstellen Ihrer ersten PHP-Klassen ist Ihnen wahrscheinlich bereits aufgefallen, dass Fehler im Quellcode oft nur schwer erkannt werden können. Der Befehl var_ dump($x) ist zwar hilfreich, die Ausgabe eines einzelnen, komplexen Objekts $x kann jedoch bereits sehr unübersichtlich sein. Tritt ein Fehler auf, so erhält man im Internetbrowser des Clients oft keinerlei Ausgabe. Die Frage, in welcher Methode gerade ein Fehler aufgetreten ist, lässt sich bislang nur anhand von Statusausgaben beispielsweise in einer Logdatei realisieren. Gerade bei komplexeren Anwendungen ist dies unzureichend. Um diesen Zustand zu verbessern, wurde die PHP-Erweiterung XDebug entwickelt, die als Open-Source-Anwendung sowohl für MS Windows als auch für Linux verfügbar ist. Wie bei PHPUnit bereits beschrieben, wird auch XDebug über den PEAR-Installer in den entsprechenden WAMP- bzw. LAMP-Server integriert. Dabei bietet XDebug im Wesent- lichen zusätzlich zu PHP: eine verbesserte var_dump-Ausgabe eine Beschränkung der Rekursionstiefe bei Methodenaufrufen Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark. Erstellung von gutem Quellcode PHP–Endlich objektorientiert 421 eine Protokollierung der aufgerufenen Methoden incl. deren Ein- und Ausgabepara- metern (Stack Trace) eine Messung des Laufzeitverhaltens und des benötigten Speichers von PHP-Skrip- ten auf dem Server (Profiling) eine Analyse der Codeabdeckung (Code Coverage), um zu prüfen, ob nie genutzte Codeteile existieren die Möglichkeit, eine interaktive Fehleranalyse unter Verwendung von Haltepunkten und einer Einzelschrittausführung von PHP-Skripten durchzuführen Abbildung 5.50 zeigt die XDebug-Ausgabe eines Skript-Tracings. Entwickeln Sie in einer PHP-Entwicklungsumgebung, so können diese Ausgaben meist in einer besseren grafi- schen Formatierung dargestellt werden. Abbildung 5.50: Konsolenausgabe von XDebug Der Editor PHPedit Bei PHPedit in der aktuellen Version 3.4.4 handelt es sich um einen Editor für PHP-Code, der neben Syntax-Highlighting auch eine Projektverwaltung, eine automatische Vervoll- ständigung von Befehlen und Debug-Tools beinhaltet. Neben der Dokumentation mit PHPDocumentator können auch SVN und PHPUnit in den Editor integriert werden. PHPedit verfügt außerdem über ein FTP-Tool, mit dem Sie die erstellten Skripte automatisch auf einem Server hochladen können. PHPedit ist für Windows-Plattformen ausgelegt und benötigt das Microsoft-.NET- Framework 2.0. Von der Homepage http://www.phpedit.com/ können Sie eine kostenlose 30-tägige Testversion herunterladen. Neben einer kostenlosen Studentenversion als „Personal License“ zu Lernzwecken existiert eine Professional-Lizenz für Unternehmen, die 89 € kostet. Diese Lizenz beinhaltet aber leider nur den reinen Editor. Für die Nut- zung von FTP, SVN und PHPUnit müssen Sie die Premium-Lizenz erwerben, die 179 € kostet. Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark. 5 – Projektpraxis 422 Abbildung 5.51: Der Quellcodeeditor PHPEdit Der Editor UltraEdit Der für Windows und neuerdings für Linux erhältliche Editor UltraEdit existiert bereits in der 15. Version. Im Gegensatz zu PHPedit ist UltraEdit nicht auf die Sprache PHP beschränkt und unterstützt zusätzlich eine Syntaxhervorhebung für C/C++, VisualBa- sic, HTML, Java und Perl mit Optionen für Fortran und LaTex. Andererseits ist die Abstimmung auf PHP natürlich nicht so weit fortgeschritten wie bei PHPedit. So fehlt eine feste Integration von Werkzeugen wie PHPUnit, SVN oder PHPDocumentator. Stattdessen verfügt UltraEdit über eine Werkzeugkonfiguration, mit der Anwendungen auf der Kommandozeile durch einen Mausklick oder über eine Tastenkombination ange- stoßen werden können, deren Ausgabe in den Editor umgeleitet werden kann. Auf diese Weise können andere Werkzeuge integriert werden. UltraEdit bietet Unicode-Zeichensatzunterstützung, eine Rechtschreibprüfung für meh- rere Sprachen, einen integrierten FTP-Client, eine konfigurierbare Tastenbelegung, einen Hex-Editor sowie eine HTML-Werkzeugleiste. Unter http://www.ultraedit-germany.de/ finden Sie weitere Informationen zu dem Editor, dessen Einzellizenz ca. 50 € kostet. Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark. Erstellung von gutem Quellcode PHP–Endlich objektorientiert 423 Abbildung 5.52: Der Quellcodeeditor UltraEdit in der älteren Version 9.00c Die Entwicklungsumgebung Eclipse für PHP Während es sich bei PHPedit und UltraEdit in erster Linie um reine Quellcodeeditoren handelt, sind Eclipse für PHP und das im folgenden Kapitel vorgestellte Zend Studio Entwicklungsumgebungen, mit denen insbesondere größere Projekte verwaltet werden können. Bei Eclipse handelt es sich um ein Open-Source-Projekt, das selbst in Java pro- grammiert wurde. Es basiert auf einem OSGi-Framework namens Equinox und stellt eine hochmodulare Plattform dar, die aus einem minimalen Kern besteht, auf den zahl- reiche Plug-ins installiert werden können. Die integrierte Entwicklungsumgebung wurde ursprünglich nur für Java-Anwendungen verwendet und ist im Java-Umfeld sehr weit verbreitet. Die Entwicklungsumgebung selbst unterstützt jedoch nicht nur eine einzige Programmiersprache. Das unter Windows, Linux und Mac einsetzbare Werkzeug kann auf der Homepage http://www.eclipse.org/ im Down- loadbereich auch in einer C/C++-Version und eben auch für PHP-Entwickler herunterge- laden werden. Die Version „Eclipse for PHP Developers“ ist 139MB groß. Die Integration der Sprache PHP ist in der Community bislang noch nicht so weit ausge- prägt wie im Java-Umfeld. Dennoch lassen sich die meisten Hilfsprogramme wie Unit- Testing, Debugging oder Versionierung als zusätzliche Plug-ins in die Entwicklungsum- gebung integrieren. Eclipse for PHP Developers integriert die so genannten Eclipse PHP Development Tools (PDT), die Syntax Highlighting und weitere grafische Hilfsmittel für den Entwickler mit- Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark. 5 – Projektpraxis 424 bringen. So existiert beispielsweise eine grafische Symbolik für private und öffentliche Eigenschaften bzw. Methoden und ein weiteres Symbol, das das Überschreiben einer Methode von einer Oberklasse kennzeichnet. Abbildung 5.53: Screenshot der Eclipse-Entwicklungsumgebung für PHP Die Entwicklungsumgebung Zend Studio Das Unternehmen Zend Technologies ist seit Jahren ein führender Anbieter von PHP- Produkten und Dienstleistungen für die Entwicklung, Implementierung und Verwal- tung von PHP-Anwendungen. Zend beschreibt seine Entwicklungsumgebung Zend Studio in der aktuellen Version 7.0 als ein Integrated Development Environment (IDE) für professionelle Entwickler, in der alle Entwicklungskomponenten enthalten sind, die für den gesamten Lebenszyklus von PHP-Anwendungen benötigt werden. Ebenso wie Eclipse integriert auch Zend Studio die Eclipse PDT, bietet jedoch im Ver- gleich zu Eclipse for PHP Developers eine tiefere Integration der Sprache PHP. Eine Ursache liegt darin, dass sich die Eclipse Foundation in erster Linie auf die Sprache Java konzentriert, während Zend Studio ausschließlich für PHP ausgelegt ist. Ein weiterer Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark. Erstellung von gutem Quellcode PHP–Endlich objektorientiert 425 Grund liegt darin, dass es sich bei dem Zend Studio nicht um ein Open-Source-Projekt handelt und die Weiterentwicklung der Entwicklungsumgebung aus Lizenzeinnahmen möglich ist. Eine Einzellizenz kostet ca. 400 € und umfasst auch ein 1-Jahres-Abonnement für Updates und Support. Der Download einer Testversion von der Homepage http:// www.zend.com/en/products/studio/ ist möglich, um ein erstes Gefühl für die Entwicklungs- umgebung zu erhalten. Wie auch Eclipse ist Zend Studio sowohl auf Microsoft Windows als auch auf Linux und Macintosh-Betriebssystemen funktionsfähig. Auf der Homepage http://www.zend.com/en/products/studio/comparison finden Sie eine Gegenüberstellung von PDT und Zend Studio 7.0 mit einer Auflistung der Mehrwerte, die Zend Studio 7.0 gegenüber PDT zu bieten hat. Abbildung 5.54: Screenshot der Entwicklungsumgebung Zend Studio Hinweis In diesem Kapitel wurden lediglich einige wichtige Werkzeuge im PHP-Umfeld skiz- ziert, damit Sie sich einen ersten Überblick verschaffen können. Für einen tieferen Einblick werden Sie sich detaillierter mit den für Sie interessanten Werkzeugen beschäftigen müssen. So werden beispielsweise PHPUnit, Subversion SVN, XDebug und PHPDocumentator in dem Buch mit dem Titel „Enterprise PHP Tools“ von Ste- fan Priebsch, ISBN 3-9350-4293-0 des Verlags entwickler.press genauer beschrieben. Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark. Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark. PHP–Endlich objektorientiert 427 Stichwortverzeichnis Symbole __autoload 219 __call 222 __clone 230 __construct 212 __destruct 212 __get 220 __set 220 __toString 226 ::-Operator 227 ?-Operator 42 .html-Datei 13 @-Operator 76 $_GET 71 $_POST 72, 372 $_SESSION 73 $this 213 Numerisch 1:1-Beziehung 114 1:n-Beziehung 114 3-Schichten-Architektur 83, 113 A abstract 239 abstrakte Klasse 143 Adapter 404 Aggregation 143, 262 agile Methoden 146 Akteur 164 Aktivitätsdiagramm 171, 250, 334 anonymes Objekt 183 Anti-Pattern 408 Anweisung 21 Anwendungsfalldiagramm 163, 330 Array 19 Assoziation 141, 246 Assoziationsklasse 188 assoziatives Feld 29 Attribut 133 Aufwand 145 Ausgabe 20 außerirdische Spinne 410 B Beobachter 406 Blendwerk 412 Boolean 18–19 Bottom-Up-Strategie 103 break 53 C Casting 23 const 228 continue 54 Controller 371 Copy/Paste-Programmierung 409 CRC-Karten 153 D Dateizugriff 77 Datenbankverbindungsobjekt 270 Datenfeld 19, 28 Datenfeldfunktionen 32 Datenmodell 160 Datentypen 18 Datentypprüfung 22 Datenzugriffsschicht 114, 388 Datum- und Zeitfunktionen 64 Death Sprint 412 define 228 Deserialisierung 218 Design Patterns 401 Destruktor 140, 212 Detailgrad 162 die 58 Diskriminator 188 display_errors 291 Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark. Stichwortverzeichnis 428 DOM-Parser 295, 302 Double 18 do-while 52 DTD 305 dynamisches Feld 30 E echo 15 Eclipse 423 Eigenschaft 133, 211 E-Mail-Funktionen 98 ER-Diagramm 115 ereg 326 error_log 291 Erschleichung von Funktionalität 412 evolutionäres Prototyping 120 extend-Beziehung 165 extends 239 F Fabrik 402 Fachlogik 115, 347 FDD 156 featuregetriebene Entwicklung 156 Fehler-Arten 288 Fehlerbehandlung 278 final 230 Float 19 foreach 49 foreach-Schleife 252 for-Schleife 46 FTP-Funktionen 80 Funktionen als Parameter 57 Funktionsaufrufe 55 fußgesteuert 45 G Generalisierung 138 Geschäftsprozessanalyse 145 Geschäftsprozessmodellierung 145 GET 70 Get-Methode 137, 212 Gottklasse 411 GPA 145 GPM 145 GUI 365 gültig 294 H Handle 20 horizontaler Prototyp 119 HTML auslesen 362 HTML-Formulare 69 HTML-Tabelle 376 HTTP-Anfrage 14 I if-elseif 40 if-then-else 36 IIS 324 include 59 include-Beziehung 165 Indizierung 29 ini_set 290 innere Plattform 411 instanceof 231 Integer 18 Interessen 124 Interface 143, 195, 266 Interfaceimplementierung 266 Iteration 346 K Klasse 129, 340 Klassenattribut 144, 226 Klassendiagramm 213, 222, 341 Klassendiagramm (Analyse) 181, 191 Klassendiagramm (Design) 191 Klassendiagramm des Designs 344 Klassengeflecht 194 Klasseninformationen 234 Klassenmethode 144, 226 klonen 230 Kommentar 16 Komposition 143, 186, 256 Kompositum 405 Konstante 17, 228 Konstruktor 140, 212 Kontrollfluss 171 kopfgesteuert 45 L LAMP 7 Late Static Binding 324 Lavafluss 409 Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark. Stichwortverzeichnis PHP–Endlich objektorientiert 429 M mail 98 mathematische Funktionen 67 mehrdimensionales Feld 31 Mercury Mail-Server 98 Methode 134, 193 MIME 328 Model-View-Controller 159 Multiplizität 185 MVC 159, 365, 388 MySQL-Datentypen 86 MySQL-Funktionen 83 MySQL-Zugriff 388 N n:m-Beziehung 114 Namensraum 318 n-äre Assoziation 189 Navigierbarkeit 184 neue Funktionen 325 new 214 NULL 20 O Object 20 Objekt 8, 129 Objektdiagramm 181, 190, 340 Objektinformationen 233 Objektmengenverarbeitung 176 objektorientierte fachliche Analyse 145 objektorientierte Implementierung 145 objektorientiertes technisches Design 145 Objektorientierung 8 OMG 161 OOA 145, 330 OOD 145, 342 OOP 145, 344 Operation 134 Operator 25 P Paarprogrammierung 158 PAP 171 Parameterübergabe 56 Peer Review 158 Phar-Archiv 322 PHP 6 326 php.ini 289 PHPDocumentator 418 PHPedit 421 PHPUnit 415 Planning Poker 147 Polymorphie 139 POST 72 Präsentation 160 Präsentationsschicht 116 private 137 Programmablaufplan 171 Projekt 104, 329 Projektbeteiligte 122 Projektgröße 121 protected 137 Prototyping 118, 345 prozedural 8 public 137 Q quadratisches Rad 410 R Rapid Prototyping 120 Refactoring 397 Referenz 24 reflexive Assoziation 189 Reporting-Management 288 require 59 require_once 214 Resource-ID 20 Review 397 RGB 376 Risk/Value-Priorisierung 147 RPC 314 RUP-Modell 126 S Safe Mode 328 SAX-Parser 295, 298 Schablone 405 Schema 307 Schleifen 45 Schwimmbahn 174 Scrum 150 SDL 172 Sequenzdiagramm 202, 272 Serialisierung 218 serialize 218 Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark. . Parameterübergabe 56 Peer Review 158 Phar-Archiv 322 PHP 6 326 php. ini 289 PHPDocumentator 418 PHPedit 421 PHPUnit 415 Planning Poker 147 Polymorphie 139 POST. Quellcode PHP – Endlich objektorientiert 423 Abbildung 5.52: Der Quellcodeeditor UltraEdit in der älteren Version 9.00c Die Entwicklungsumgebung Eclipse für PHP