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,
Trang 1Abbildung 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
Trang 2Erstellung von gutem Quellcode
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
Trang 3mit-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
Trang 4Erstellung von gutem Quellcode
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
Trang 6PHP – 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
Trang 7DOM-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
Trang 8M
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
Trang 9Session 72, 215, 368
set_error_handler 291
Set-Methode 137, 212
Sichtbarkeit 136, 192
Singleton 403
SOAP 314
Spaghetticode 409
Specification and Description Language 172
Spezialisierung 138
Spiralmodell 108
SQL-Befehle 92
Stakeholder 122
static 226
Status 136
Steuerung 160
Story Cards 146
String 19
Styleguide 398
Sumo-Hochzeit 411
SVN-Versionierung 417
switch 42
Switch-Statement 409
Systemanalytiker 331
Szenario 176, 366
T
TDD 154
Teile und Herrsche 8
Teilung und Synchronisation 174
testgetriebene Entwicklung 154, 346
textueller Anwendungsfall 333
throw 281
Top-Down-Vorgehensweise 103
Transaktion 94
try-catch 279
U
UltraEdit 422
UML 9, 161
UML-Werkzeuge 413
Umwandlung von Datentypen 23
Unicode 326
Unit-Test 155
unserialize 218
untypisiert 18
URN 316
Use Case 166
V
var_dump 20 Variable 17 Variable löschen 22 Verb-/Substantiv-Methode 151 Vererbung 138, 237
Vererbungshierarchie 186 vertikaler Prototyp 118 Verwaltungssysteme 126 Verzweigung 35, 172 View 369
Visio 414 V-Modell 110
W
W3C 295 Warenkorb 73 Wasserfallmodell 106 Web Service 314 wechselseitige Assoziation 248 Wertzuweisung 25
while 51 wohlgeformt 294 WSDL 317 Wunderwaffe 410
X
XAMPP 13, 84, 318 XDebug 420 XLST 311 XML 292
Z
Zählschleife 45 Zeichenkette 18 Zeichenkettenfunktionen 61 Zend Studio 424
Zielgruppe 9 Zustand 136, 342 Zustandsdiagramm 196, 274, 342 Zwiebel-Programmierung 409