Inhaltsverzeichnis
1
Einführung
1.1
Einleitung
1.2
Was sind Entwurfsmuster?
1.3
Vorkenntnisse
1.4
Aufbau der Lektionen
1.4.1
Aufgaben im Fließtext
1.4.2
»Testen Sie Ihr Wissen«
1.4.3
»Aufgaben zur Selbstkontrolle«
1.4.4
Optionale Aufgaben
1.5
Anforderungen an PHP
2
Strukturierung von PHP-Webprojekten
2.1
Das Problem
2.2
Strukturierung von PHP-Code
2.2.1
PHP und HTML trennen
2.2.2
Lesbaren Code schreiben
2.2.3
Kapselung in Funktionen
2.2.4
Funktionen, die atomare Probleme lösen
2.3
Zusammenfassung
3
Einführung in die objektorientierte Programmierung
3.1
Einleitung
3.2
Was sind Objekte?
3.2.1
Objekte in PHP
3.2.2
Klassen
3.3
Attribute
3.3.1
Attribute verändern
3.3.2
Attribute auslesen
3.3.3
Attribute in Klassen definieren
3.4
Methoden
3.4.1
Grundlagen
3.4.2
Vorteil von Methoden
3.4.3
Die Variable $this
3.5
Namenskonventionen
3.5.1
Klassen
3.5.2
Attribute
3.5.3
Methoden
3.6
Testen Sie Ihr Wissen
3.7
Aufgaben zur Selbstkontrolle
4
Getter- und Setter-Methoden
4.1
Das Problem
4.2
Kapselung
4.3
Getter-Methoden
4.3.1
Vorteil von Getter-Methoden
4.3.2
Ein Attribut »protected« machen
4.4
Setter-Methoden
4.4.1
Nachteile des direkten Änderns eines Attributs
4.4.2
Methoden zum Ändern von Attributen
4.5
Öffentliche und geschützte Methoden
4.6
Testen Sie Ihr Wissen
4.7
Aufgaben zur Selbstkontrolle
5
Arbeiten mit Objekten
5.1
Das Problem
5.2
Methoden, die andere Methoden aufrufen
5.3
Methoden in anderen Objekten aufrufen
5.3.1
Grundlagen
5.3.2
Der instanceof-Operator
5.3.3
Type-Hinting
5.4
Testen Sie Ihr Wissen
5.5
Aufgaben zur Selbstkontrolle
6
Virtuelle Attribute
6.1
Das Problem
6.2
Virtuelle Attribute
6.2.1
Konzept
6.2.2
Setter für virtuelle Attribute
6.3
Testen Sie Ihr Wissen
6.4
Aufgaben zur Selbstkontrolle
6.5
Optionale Aufgaben
7
Magische Methoden
7.1
Das Problem
7.2
Magische Methoden
7.2.1
Konzept
7.2.2
Die Methode __toString()
7.3
Konstruktoren
7.3.1
Konzept
7.3.2
Die Methode __construct()
7.3.3
Parameter an __construct() übergeben
7.3.4
Ein assoziatives Array an den Konstruktor übergeben
7.4
Testen Sie Ihr Wissen
7.5
Aufgaben zur Selbstkontrolle
7.6
Optionale Aufgaben
8
Beziehungen zwischen Objekten
8.1
Das Problem
8.2
Objekte in anderen Objekten verstecken
8.3
Ganze Objekte als Parameter übergeben
8.4
Testen Sie Ihr Wissen
8.5
Aufgaben zur Selbstkontrolle
8.6
Optionale Aufgaben
9
MVC
9.1
Einleitung
9.1.1
MVC als Konzept
9.1.2
Unser MVC-Konzept
9.2
Das Beispielprojekt »hallo«
9.3
Der Model-Layer
9.4
Templates
9.4.1
Vollständige Templates
9.4.2
Teil-Templates
9.5
Der View-Layer
9.6
Der Controller-Layer
9.6.1
Controller mit Aktionen
9.6.2
Die Standard-Aktion
9.7
Zusammenfassung
9.8
Testen Sie Ihr Wissen
9.9
Aufgaben zur Selbstkontrolle
10
Klassenbasierte Controller
10.1
Einleitung
10.2
Eine klassenbasierte Fallunterscheidung
10.2.1
Schritt 1
10.2.2
Schritt 2
10.2.3
Schritt 3
10.2.4
Schritt 4
10.2.5
Schritt 5
10.3
Vererbung
10.4
Two-Step-Rendering
10.5
Zusammenfassung
10.6
Aufgaben zur Selbstkontrolle
10.7
Optionale Aufgaben
11
Anhang: Programmierrichtlinien
11.1
Einleitung
11.2
Richtlinien? Wieso? Weshalb? Warum?
11.3
Hintergrund
11.4
Die Empfehlungen
11.4.1
PSR-1: Framework-Interoperabilität
11.4.2
PSR-2: Stilistische Programmierrichtlinien
11.4.3
Ergänzungen aus den Symfony-Standards
11.4.4
Eigene Ergänzungen
12
Anhang: Weiterführende Informationen
12.1
Einführung
12.2
Weblinks
12.2.1
www.php.net
12.2.2
www.phpdeveloper.org
12.2.3
devzone.zend.com
Lösungen der Wissensfragen