Mit der Version 5 hat PHP einen großen Schritt getan und sich zu einer Sprache entwickelt, die objektorientierte Software-Entwicklung auf einem ganz neuen Level ermöglicht.
PHP Design Patterns vermittelt Wissen, das beim Entwurf komplexer Anwendungen hilft, diese flexibel, erweiterbar und performant zu implementieren. Es zeigt, dass Entwurfsmuster, die sich in anderen Sprachen wie Java oder C++ bewährt haben, auch in PHP erfolgreich eingesetzt werden können.
In praxisorientierten Beispielen wird gezeigt, wie diese Design Patterns von den Features, die PHP bietet, profitieren können und wie man Ansätze implementiert, die in anderen Sprachen nicht realisierbar wären.
Da PHP häufig für die Entwicklung von Webanwendungen eingesetzt wird, setzt auch das Buch den Fokus auf die Anwendung von Patterns im Internet.
Nach dem Erfolg der ersten Auflage von "PHP Design Patterns" wurde rechtzeitig zum Erscheinen von PHP 5.3 eine zweite, überarbeitete Auflage des Bestsellers veröffentlicht.
Die Neuerungen in dieser Auflage sind die Behandlung der neuen OO-Features in PHP 5.3 (Namespace, Closures, Late Static Binding, etc.), das umfangreiche Kapitel über die SPL und die neuen Regeln Fluent Interfaces und Dependency Injection in Kapitel 3.
Doch auch die Kapitel zu den Entwurfsmustern wurde überarbeitet. In diese Auflage des Buches werden nun auch die Patterns Prototype, Flyweight, State, Chain-of-Responsibility, Indentity Map und Data-Mapper vorgestellt und behandelt.
Für komplexere Themen, wie Dependency Injection und das Data-Mapper Pattern wird das PHP 5-Framework Stubbles verwendet, um zu demonstrieren, wie diese Techniken in produktiven Anwendungen bereits eingesetzt werden.
Und schließlich wurden auch alle Kapitel samt Code-Beispielen an die Neuerungen in PHP 5.3 angepasst.
Das Buch gliedert sich in acht Kapitel und einen Anhang. Es führt den Leser dabei durch alle wichtigen Aspekte, die bei der Anwendung von Entwurfsmustern in PHP relevant sind.
Kapitel 1, Objektorientierte Programmierung in PHP 5.3, befasst sich mit den Grundlagen objektorientierter Programmierung. Dabei beginnt das Kapitel mit der Definition von Klassen und Objekten und reicht über Namespaces und Closures bis hin zur Fehlerbehandlung mit Exceptions. Das Kapitel geht auch auf spezielle Features von PHP ein und zeigt, welche Interzeptoren PHP bietet und wie diese zu Ihrem Vorteil eingesetzt werden können.
Kapitel 2, Die Standard PHP Library, widmet sich der Standard PHP Library (SPL) und stellt die von dieser Erweiterung mitgelieferten Interfaces und Klassen vor. Am Ende des Kapitels finden Sie einen Exkurs in die SPL_Types-Erweiterung, die nicht Teil der PHPDistribution ist.
Kapitel 3, Gutes Software-Design, vermittelt dem Leser grundlegende Design-Richtlinien, auf denen die nachfolgenden Entwurfsmuster aufbauen. Weiterhin vermittelt es dem Leser einen Einblick in die Unified Modeling Language (UML) und erklärt, wie typische Pattern-Kataloge aufgebaut sind.
Kapitel 4, Erzeugungsmuster, behandelt Entwurfsmuster, die eingesetzt werden, um Objekte zu erzeugen. Vorgestellt werden in diesem Kapitel das "Singleton-Pattern", das "Factory-Method-Pattern", "Abstract-Factory-Pattern" und das "Prototype-Pattern".
Kapitel 5, Strukturmuster, befasst sich mit Patterns, die bei der Komposition von Objekten Anwendung finden. Diskutiert werden in diesem Kapitel die Patterns "Composite", "Adapter", "Decorator", "Proxy", "Facade" sowie "Flyweight". Dabei werden die einzelnen Muster voneinander abgegrenzt und ihre Vor- und Nachteile dargelegt.
Kapitel 6, Verhaltensmuster, zeigt, wie Entwurfsmuster, die die Interaktion einzelner Klassen und Objekte regeln, angewandt werden können. Die vorgestellten Patterns sind "Template-Method", "Subject/Observer", "Command", "Visitor", "State", "Chain of Responsibility" und "Iterator". Weiterhin stellt dieses Kapitel die Iterator-Implementierung der SPL vor.
Kapitel 7, Enterprise Patterns: Datenschicht und Business Logik, stellt das Schichtenmodell vor, auf dem Model-View-Controller-Architekturen aufbauen. An Hand von Propel und Stubbles wird der Einsatz der Row-Data-Gateway-, Active-Record-, Identity-Map und Data-Mapper-Patterns demonstriert. Als Entwurfsmuster außerhalb der Schichten wird das Registry-Pattern vorgestellt.
Kapitel 8, Enterprise-Patterns: Die Präsentationsschicht, komplettiert die in Kapitel 7 vorgestellten Schichten um die Command-Control- und View-Schicht. Dabei werden die Muster Front-Controller und Intercepting Filter genauer betrachtet. Weitere Patterns in diesem Kapitel umfassen Template-View und Template-Helper (unter anderem mit Hilfe der Template-Engine patTemplate), sowie das Event-Dispatcher-Pattern.
Anhang A, Installation von PEAR, zeigt, wie PEAR installiert und verwendet wird. Verschiedene in Kapitel 6 und 7 angesprochene Pakete können über den PEAR-Installer bezogen werden.
Stephan Schmidt ist Head of Web Sales Development bei der 1&1 Internet AG in Karlsruhe und dort verantwortlich für Webanwendungen in PHP und Java.
Seit 2001 ist er fest in der PHP Open Source-Szene verwurzelt und Gründungsmitglied der Frameworks PHP Application Tools (www.php-tools.de) und Stubbles (www.stubbles.net). 2003 trat er dem PEAR-Projekt bei und betreut dort über 15 Pakete sowie eine PECL-Extension.
Er ist regelmäßiger Autor für verschiedene internationale Fachmagazine, wie zum Beispiel für das PHP Magazin, php|architect und das Java Magazin. Weiterhin ist er Koautor verschiedener Bücher rund um PHP, wie dem PHP 5 Kochbuch, das auch im O’Reilly Verlag erschienen ist, oder auch PHP Programming with PEAR, das bei Packt Publishing erschienen ist. Sein Wissen vermittelt er anderen Entwicklern regelmäßig auf Konferenzen rund um den Globus.
In seinem Leben neben PHP befasst er sich mit den goldenen 50ern, amerikanischen Superhelden-Comics und Burlesque.
Auf dieser Seite erfahren Sie, was andere Leser über die erste Auflage des Buches denken.
"Alles in allem also ein rundes, das anvisierte Themengebiet hervorrangend ausfüllendes Buch, das vom Leser nur eins verlangt: Zeit und Konzentration auf den Inhalt" (Carola Kummert in PHP Magazin 1.07)
"Mit PHP Design Patterns legt Stephan Schmidt ein Werk vor, dass in keinem PHP-Bücherregal fehlen dürfte. [...] Ein solch umfassendes und praktisches Buch hat bereits seit langem auf dem deutschsprachigen Buchmarkt für PHP gefehlt, daher bleibt als Fazit nur eins: Absolute Pflichtlektüre! Kaufbefehl!" (dynamic-webpages.de)
"Stephan Schmidt zeigt mit seinem Buch PHP Design Patterns eindrucksvoll, dass sich diese Elemente professioneller Software-Entwicklung auch auf die Scriptsprache PHP übertragen und damit anwenden lassen." (Erich Holzbauer auf maandiko.de)
"I want to recommend this book to everyone who is not absolutely familiar with OO development in PHP or who comes from another OO language into PHP development. It can really give you some highly important knowledge on object oriented design patterns and on good OO development in PHP." (Tobias Schlitt)
"Stephan Schmidt legt ein Buch vor, das verständlich und flüssig geschrieben ist und sich gut sowie interessant liest. Er versteht es, die Probleme und Fragen, die zwangsläufig beim Entwurf einer Applikation aufkommen, klar auszudrücken und eine ebenso adäquate Art, mögliche Lösungen dafür zu finden." (Florian Wendland)
Stephan Schmidt
Hohlweg 6
75203 Königsbach-Stein
Deutschland
Design der Website: Georg Rothweiler/screendesignr
Realisierung: Mistralys