Samstag, 11. Februar 2012


Buch-Tipp

Extending and Embedding PHP

(Link zum Artikel: http://www.entwickler.de/php//000537)
  • Autor/in: Sara Golemon
  • Verlag: Sams Publishing
  • Seiten: 456
  • erschienen: 2006
  • Preis: 49,99 US-Dollar
  • ISBN: 067232704X

PHP verdankt seinen Erfolg nicht zuletzt der Tatsache, dass der PHP-Interpreter von Grund auf für die einfache Erweiterung, beispielsweise um die Funktionalität einer externen Bibliothek, bzw. das einfache Einbetten in andere Software wie beispielsweise den Apache Webserver ausgelegt ist. Das vorliegende Buch von Sara Golemon, einer langjährigen Entwicklerin von PHP und Autorin zahlreicher C-Erweiterungen für PHP, die über PECL zu beziehen sind, bietet eine Dokumentation der Interna des PHP-Interpreters, die lange vermisst wurde.

Nach einer kurzen Einleitung, die den Leser, der über grundlegende C-Kenntnisse verfügen sollte, mit Begriffen wie PHP Extension, Zend Extension, Userland oder Internals vertraut machen, gibt Kapitel 1 ("The PHP Life Cycle") einen Überblick über den PHP-Interpreter und seine Komponenten (TSRM, Zend Engine, SAPI, "PHP"). Kapitel 2 ("Variables from the Inside Out") beschreibt, wie der PHP-Interpreter Variablen handhabt und verwaltet. Der Leser lernt hier den Umgang mit Datentypen und Symboltabellen ebenso wie die Details der Datenstruktur zval („Zend Value“). Kapitel 3 ("Memory Management") vertieft das im vorangegangen Kapitel vermittelte Wissen über die Datenstruktur zval und beschreibt unter anderem das Kopieren und Aufräumen von zvals und stellt den Zend Memory Manager ebenso vor wie die Techniken (beispielsweise Reference Counting, Copy-on-Write), die dieser verwendet. Kapitel 4 („Setting Up a Build Environment“) hilft dem Leser bei der Installation und Einrichtung einer Umgebung, mit der man, wahlweise unter *NIX oder unter Microsoft Windows, Erweiterungen für PHP entwickeln kann. Nach diesen ersten vier Kapiteln sollte der Leser in der Lage sein, seine erste PHP-Erweiterung zu schreiben, zu übersetzen und zu verwenden. Kapitel 5 ("Your First Extension") nimmt ihn auch sogleich an die Hand und führt anhand eines Beispiels Schritt für Schritt in die Programmierung von PHP-Erweiterungen ein.

Kapitel 6 ("Returning Values") und Kapitel 7 ("Accepting Parameters") erklären die Mechanismen, über die eine PHP-Erweiterung mit dem PHP-Userland interagieren kann: Parameter und Rückgabewerte von Funktionen bzw. Methoden. Kapitel 8 ("Working with Arrays and Hash Tables") und Kapitel 9 ("The Resource Data Type") gehen detailliert auf alle Nicht-Objekt-Datentypen ein, die von PHP unterstützt werden. Je ein Kapitel widmet die Autorin anschließend dem Objektmodell von PHP 4 und PHP 5. Kapitel 12 ("Startup, Shutdown, and a Few Places in Between") behandelt den Umgang mit den so genannten Thread Safe Globals sowie den Super Globals, Kapitel 13 ("NI Settings") die Konfigurierung der PHP-Erweiterung zur Laufzeit durch Einstellungen in der php.ini.

Die drei folgenden Kapitel ("Accessing Streams", "Implementing Streams", and "Diverting the Stream") machen den Leser mit einer weiteren wichtigen Programmierschnittstelle von PHP vertraut: dem Streams Layer. Sämtliche Eingabe- und Ausgabe-Operationen in PHP, beispielsweise das Inkludieren von PHP-Quelltexten oder das Schreiben in eine Datei, werden seit PHP 4.3 durch ein einheitliches Streams-System getätigt. Der Leser lernt hier, wie dieses System funktioniert und wie es durch eigene Streams Handler sowie Filter und Wrapper erweitert werden kann.

Kapitel 17 ("Configuration and Linking") vertieft das Wissen aus Kapitel 4 und behandelt unter anderem die GNU autotools (autoconf, automake, ...) vor. Kapitel 18 ("Extension Generators") stellt mit ext_skel und PECL_Gen zwei Werkzeuge vor, die das Schreiben von PHP-Erweiterungen erleichtern und beschleunigen helfen. Schließlich widmen sich Kapitel 19 ("Setting Up a Host Environment") und Kapitel 20 ("Advanced Embedding") der Einbettung des PHP-Interpreters in eigene, in C geschriebene Applikationen.

Das Buch schließt mit den Anhängen "Zend API Reference", "PHP API Reference", "Extending and Embedding Cookbook" und "Additional Resources". Hiervon sind die beiden ersten sowohl für Anfänger als auch Fortgeschrittene eine wertvolle Hilfe für die tägliche Arbeit bei der Entwicklung von PHP-Erweiterungen. Im "Extension Kochbuch" finden Programmierer von PHP-Erweiterungen Lösungen und Rezepte für wiederkehrende Probleme.

Obwohl sich das Buch eines sehr technischen Themas annimmt, gelingt es der Autorin, ihr Wissen gut verständlich zu vermitteln. Hierzu tragen nicht zuletzt die zahlreichen Beispiele bei. Wenn Sie auf der Suche nach einem Standardwerk sind, das die Interna des PHP-Interpreters erklärt sowie die Programmierung von Erweiterungen für den PHP-Interpreter beschreibt, suchen Sie nicht länger: Sie finden es in diesem Buch, das ohne Vorbehalte jedem zu empfehlen ist, der sich für diese Materie interessiert.

von Sebastian Bergmann

Kommentare