Errata zum Buch
Wir haben uns Mühe gegeben, dieses Buch so fehlerfrei wie möglich
zu erstellen. Trotzdem schleichten sich einige Fehler ein.
Auf diesen Errata-Seiten finden Sie für die
uns bekannten Fehler die entpsrechenden Korrekturen.
Sie haben weitere Fehler gefunden oder einen
Verbesserungsvorschlag: Sie können uns unter dem Menüpunkt
Kontakt eine Nachricht zukommen
lassen. Wir freuen uns über jeden Hinweis.
Vorwort – Seite vii
Der Satz auf Seite vii:Wie Sie PEAR auf den ISP bekommen, erfahren Sie bei den Installationsanleitungen im Anhang B.
sollte folgendermaßen lauten:Wie Sie PEAR auf Ihren Webspace bekommen, erfahren Sie bei den Installationsanleitungen im Anhang B.
Vorwort – Seite viii
Auf der Seite viii ist uns ein Fehler beim Umbruch des Wortes Webanwendung unterlaufen:
Sie haben die Idee einer We-
banwendung und wollen wissen, wie Sie dieses Konzept erstellen?
Sie haben die Idee einer Web-
anwendung und wollen wissen, wie Sie dieses Konzept erstellen?
Vorwort – Seite ix
Auf Seite ix hat der Fehlerteufel gleich zweimal zugeschlagen.Der Satz:
bei allen Kursteilnehmern an der FHT-Ess-
lingen für ihre Geduld, beim PHP-Dokumentationsteam - hier beson-
ders Dr. Egon Schmid, bei Stefan Münz für seine erstklassige HTML-
Referenz SELF-HTML und bei den Regulars aus #php.de.
bei allen Kursteilnehmern an der FHT Ess-
lingen für ihre Geduld, beim PHP-Dokumentationsteam - hier beson-
ders Dr. Egon Schmid, bei Stefan Münz für seine erstklassige HTML-
Referenz SELFHTML und bei den Regulars aus #php.de.
Einleitung – Seite 4
Auf Seite 4 haben wir ein Komma zuviel:
Bei weit über zweitausend dokumen-
tierten Befehlen und Funktionen, findet sich zu jeder Problemstellung
schnell eine Lösung.
Bei weit über zweitausend dokumen-
tierten Befehlen und Funktionen findet sich zu jeder Problemstellung
schnell eine Lösung.
Einleitung – Seite 8
Auf Seite 8 in der Aufzählung ist uns ein stilistischer Fehler unterlaufen.Der Punkt:
Definiert Standards, um Entwickler beim Schreiben von portablem und wieder verwendbarem Code zu unterstützen.
sollte lauten:PEAR definiert Standards, um Entwickler beim Schreiben von portablem und wieder verwendbarem Code zu unterstützen.
Die Skriptsprache PHP – Seite 23
Auf Seite 23 sind uns zwei Tippfehler mit dem <br />-Tag unterlaufen.Die Sätze:
Zeilenumbrüche erwirken Sie in HTML mit dem <br >-Tag.
Beachten Sie, dass nach dem <br >-Tag kein Zeilenumbruch
erfolgt.
Zeilenumbrüche erwirken Sie in HTML mit dem <br />-Tag.
Beachten Sie, dass nach dem <br />-Tag kein Zeilenumbruch
erfolgt.
Die Skriptsprache PHP – Seite 31
Am Anfang der Seite 31 hat sich ein falscher Artikel eingeschlichen.Der Satz:
Das Pluszeichen "+" ist
hierbei der binäre Operator, weil er mit zwei Operanden – die Zahlen 3 und
5 – verwendet wird.
Das Pluszeichen "+" ist
hierbei der binäre Operator, weil er mit zwei Operanden – den Zahlen 3 und
5 – verwendet wird.
Die Skriptsprache PHP – Seite 31
Auf der Seite 31 befindet sich leider noch ein TippfehlerDer Satz:
Eine Variable wird in einem Ausdruck durch seinen Wert
ersetzt:
Eine Variable wird in einem Ausdruck durch ihren Wert
ersetzt:
Die Skriptsprache PHP – Seite 32
In "Listing 2-21" ist uns ein Rechenfehler unterlaufenDas Listing:
heißt richtig:<?php $a = 17 + 5; echo $a; // Gibt 23 aus ...
<?php $a = 17 + 6; echo $a; // Gibt 23 aus ...
Die Skriptsprache PHP – Seite 35
Im "Listing 2-27" fehlt ein Leerzeichen in der echo-Anweisung.Alte Version:
Neue Version:<?php $a = 'PHP'; $b = 5; echo $a . ' ' . $b . 'ist toll!'; // Ausgabe: PHP 5 ist toll! ?>
<?php $a = 'PHP'; $b = 5; echo $a . ' ' . $b . ' ist toll!'; // Ausgabe: PHP 5 ist toll! ?>
Grafiken mit PHP erzeugen und bearbeiten – Seite 130
In der Grafik "Abbildung 9.1 Grafikgenerierung und -anzeige" fehlt ein doppeltes Hochkomma.Der HTML-Code im oberen Teil der Grafik:
lautet richtig:<img src="graph.php" width="200 height="50" />
<img src="graph.php" width="200" height="50" />
Objektorientiert modellieren – Seite 178
Bei der Tabellenbeschreibung der Tabelle Kunde haben wir die Auslassungspunkte vergessen.Die Tabellenbeschreibung lautet bisher:
Tabelle Kunde: <#KundeId, >
Richtig ist:Tabelle Kunde: <#KundeId, ... >
Objektorientiert programmieren in PHP 5 – Seite 187
Bei der Marginalie zum "Listing 12-4" wurde ein falsches Skript angegeben.Die Randbemerkung lautet bisher:
Anwendung von Mitarbeiter.php (Auszug)
Richtig ist:Anwendung von Link.php (Auszug)
Objektorientiert programmieren in PHP 5 – Seite 189 und 190
Im Abschnitt "1:n-Beziehung abbilden" haben wir ein falsches Beispiel eingefügt. Im Beispiel zur 1:n-Beziehung steht das Hilfsattribut auf der n-Seite der 1:n-Beziehung (Klasse Artikel). Auf der 1-Seite der Beziehung (Artikelgruppe) ist kein Verweis zur Artikelklasse festgehalten.Das Hilfsattribut in Form einer Liste muss bei einer 1:n-Beziehung immer auf der 1-Seite stehen – das Hilfsattribut in Form einer "normalen" Variable auf der n-Seite.
Der Abschnitt:
Diese 1:n-Beziehung können Sie mit Hilfe einer Liste in PHP in der
Artikel-Klasse abbilden. Dazu definieren Sie in der Klasse Artikel ein-
fach ein Hilfsattribut in der Form einer Liste, in der Sie alle Artikelgrup-
penobjekte (oder deren Ids) ablegen. Die Liste können Sie
als Array oder in Objektform definieren. Mit der Methode linkObject()
können Sie die Beziehungsliste ändern. An folgendem Beispiel erkennen
Sie, wie Sie eine Liste als Array umsetzen können.
Diese 1:n-Beziehung können Sie mit Hilfe einer Liste in PHP in der
Artikelgruppen-Klasse abbilden. Dazu definieren Sie in der Klasse Arti-
kelgruppe (1-Seite der Beziehung) einfach ein Hilfsattribut in der Form
einer Liste, in der Sie alle Artikelobjekte (oder deren Ids) ablegen kön-
nen. Die Liste können Sie als Array oder in Objektform definieren. Mit
der Methode linkObject() der Klasse Artikelgruppe können Sie die
Beziehungsliste mit den Artikeln ändern. In der Klasse Artikel (n-Seite
der Beziehung) halten Sie genau eine Artikelgruppe im entsprechenden
Hilfsattribut fest. Mit der Methode linkObject() der Klasse Artikel
können Sie das Hilfsattribut Artikel ändern. An folgendem Beispiel er-
kennen Sie, wie Sie die Liste als Array umsetzen können.
sieht dann in der neuen Version folgendermaßen aus:<?php class Artikel { // ... var $listeArtikelgruppe = array(); // .. function linkObject($Artikelgruppe) { // Artikelgruppenobjekt in Liste einfügen $listeArtikelgruppe[] = $Artikelgruppe; } // ... } class Artikelgruppe{} $Artikel = new Artikel(); $Artikelgruppe = new Artikelgruppe(); $Artikel->linkObject($Artikelgruppe); ?>
<?php class Artikelgruppe { // ... var $bezeichnung = 'Test-Artikelgruppe'; var $listeArtikel = array(); // ... function getBezeichnung() { return $this->bezeichnung; } function linkObject($Artikel) { // Artikelobjekt in Liste einfügen. $this->listeArtikel[] = $Artikel; } // ... } class Artikel { // ... var $artikelgruppe; var $artikelnummer = 1; // ... function linkObject($Artikelgruppe) { // Artikelgruppennamen merken. $this->artikelgruppe = $Artikelgruppe->getBezeichnung(); // Artikel in der Artikelgruppe registrieren. $Artikelgruppe->linkObject($this); } } $Artikel = new Artikel(); $Artikelgruppe = new Artikelgruppe(); $Artikel->linkObject($Artikelgruppe); ?>
Objektorientiert programmieren in PHP 5 – Seite 194 und 195
Bei der Klasse Firma haben wir die set- und get-Methode für das Attribut Branche vergessen. Das UML-Diagramm auf Seite 196 dieser Klassenbeziehung haben wir entsprechend angepasst.Wir erweitern die Klasse Firma:
um eine set- und get-Methode für das Attribut Branche:// Konstruktor function __construct($branche) { $this->branche = $branche; } // Alle anderen Methoden function setName($name) { $this->name = $name; } function getName() { return $this->name; }
// Konstruktor function __construct($branche) { $this->branche = $branche; } // Alle anderen Methoden function setName($name) { $this->name = $name; } function getName() { return $this->name; } function setBranche($branche) { $this->branche = $branche; } function getBranche() { return $this->branche; }
Objektorientiert programmieren in PHP 5 – Seite 195
Bei der Erzeugung eines Firma-Objektes haben wir das abschließende Semikolon vergessen.Die Aufruf lautet bisher:
Richtig ist:$FastFood = new Firma('Fast-Food-Laden') // Firma ist Fast-Food-Laden
$FastFood = new Firma('Fast-Food-Laden'); // Firma ist Fast-Food-Laden
Objektorientiert programmieren in PHP 5 – Seite 206
Bei der Klasse Kind haben wir ein "extends" und das Schlüsselwort "function" vergessen.Wir passen die Klasse Kind:
entsprechend an:class Kind { felsenfest() {} // Fehler, da Methode final! }
class Kind extends Mutter { function felsenfest() {} // Fehler, da Methode final! }
Objektorientiert programmieren in PHP 5 – Seite 210
Bei der Zuweisung an $this->money haben wir das abschließende Semikolon vergessen.Die Aufruf lautet bisher:
Richtig ist:public function setMoney($money) { $this->money = $money }
public function setMoney($money) { $this->money = $money; }
Objektorientiert Programmieren in PHP 5 – Seite 211 und 219
In den Listings "Listing 12-16" auf Seite 211 und in "Listing 12-22" auf Seite 219 haben wir bei den HTML-Zeilenumbrüchen den Slash an der falschen Stelle positioniert. Dadurch werden die Zeilen in Ihrem Browser nicht umgebrochen. Wir haben die Zeilenumbrüche richtiggestellt. Somit finden Sie ab sofort im Codearchiv die richtig gestellten Zeilenumbrüche in den entsprechenden Listings.Alte Version:
Neue Version:... // Attribute direkt oder über Methode auslesen echo $Bank->getMoney() . '</br>'; echo $Bank->money . '</br>'; ...
... // Attribute direkt oder über Methode auslesen echo $Bank->getMoney() . '<br />'; echo $Bank->money . '<br />'; ...
PEAR-Grundlagen – Seite 240
Im Unterabschnitt "PEAR installieren" und haben wir vergessen die PEAR-Konfigurationsdatei zu kopieren. Dadurch wurde die Installation von PEAR auf einem ISP unnötig erschwert.Sie kopieren die pear.conf-Datei und können im Unterabschnitt "PEAR konfigurieren" einen Absatz streichen:
Kopieren Sie nun die Datei index.php mit Ihrem FTP-Programm aus
dem Verzeichnis /pear in Ihr Verzeichnis /beispiel/conf, das vom Web
aus erreichbar ist.
Kopieren Sie nun die Dateien index.php und pear.conf mit Ih-
rem FTP-Programm aus dem Verzeichnis /pear in Ihr Verzeichnis
/beispiel/conf, das vom Web aus erreichbar ist.
Rufen Sie nun per Web diese index.php auf. Damit starten Sie den Web-
Paketmanager von PEAR. Mit diesem Manager können Sie Pakete in-
stallieren, deinstallieren und updaten.
Als Nächstes müssen Sie im Package-Manager noch Verzeichnisse
einstellen. Sorgen Sie unter dem Menüpunkt Config dafür, dass statt
des Standardpfades Ihr Pfad zu Ihrem /pear-Verzeichnis steht – zum
Beispiel /homepages/42/a123456789/htdocs/pear.
PHPUnit – Seite 330
Der Satz:Einige Monate später: Wir überarbeiten unsere Anwendung mit hunderten von Klasse vollständig, darunter auch unsere obengenannte Klasse.
muss natürlich lauten:Einige Monate später: Wir überarbeiten unsere Anwendung mit hunderten von Klassen vollständig, darunter auch unsere obengenannte Klasse.
Lösungen – Seite 396
In "Listing D-10" schreiben wir unnötiger Weise zwei Mal in die Grafik. Dank unserem aufmerksamen Leser Peter Forster, können wir das hier nun richtig stellen.Wir streichen drei Zeilen aus "Listing D-10 Einen Text in eine Grafik schreiben":
... } else if (($hoehe_umgebrochen / $spalte) <= 1 ) { // Eine "Zeile" breit in die Grafik schreiben, // den Text umbrechen und weiterschreiben. $text = $str; for ($i = 0; $i < $hoehe_umgebrochen; $i++) { $text = substr($str, $zeile * $i, $zeile); imageString($grafik, $font, 0, $hoehe * $i, $text, $schwarz); }
$text = substr($str, $zeile * $i, $zeile);imageString($grafik, $font, 0, $hoehe * $i,$text, $schwarz);} else { ...