Jan Teriete
Objektorientiertes PHP Band 1: Grundlagen der OOP Ein Webmasters Press Lernbuch Version 10.0.0 vom 12.04.2018 Autorisiertes Curriculum fü...
Objektorientiertes PHP Band 1: Grundlagen der OOP Ein Webmasters Press Lernbuch Version 10.0.0 vom 12.04.2018 Autorisiertes Curriculum für das Webmasters Europe Ausbildungs- und Zertifizierungsprogramm
— www.webmasters-europe.org —
Inhaltsverzeichnis 1
2
3
4
Einführung
11
1.1
Einleitung
11
1.2
Was sind Entwurfsmuster?
11
1.3
Vorkenntnisse
12
1.4
Aufbau der Lektionen
12
1.4.1
Aufgaben im Fließtext
12
1.4.2
»Testen Sie Ihr Wissen!«
12
1.4.3
»Übungen«
13
1.4.4
»Optionale Übungen«
13
1.5
Anforderungen an PHP
13
Strukturierung von PHP-Webprojekten
14
2.1
Das Problem
14
2.2
Strukturierung von PHP-Code
14
2.2.1
PHP und HTML trennen
14
2.2.2
Lesbaren Code schreiben
17
2.2.3
Kapselung in Funktionen
18
2.2.4
Funktionen, die atomare Probleme lösen
20
2.3
Zusammenfassung
22
Einführung in die objektorientierte Programmierung
23
3.1
Einleitung
23
3.2
Was sind Objekte?
23
3.2.1
Objekte in PHP
25
3.2.2
Klassen
26
3.3
Attribute
28
3.3.1
Attribute verändern
28
3.3.2
Attribute auslesen
29
3.3.3
Attribute in Klassen definieren
29
3.4
Methoden
31
3.4.1
Grundlagen
31
3.4.2
Vorteil von Methoden
32
3.4.3
Die Variable $this
33
3.5
Namenskonventionen
35
3.5.1
Klassen
35
3.5.2
Attribute
35
3.5.3
Methoden
36
3.6
Testen Sie Ihr Wissen!
36
3.7
Übungen
36
Getter- und Setter-Methoden
38
4.1
Das Problem
38
4.2
Kapselung
38
4.3
Getter-Methoden
38
4.3.1
Vorteil von Getter-Methoden
39
4.3.2
Ein Attribut »protected« machen
40
4.4
Setter-Methoden
42
5
6
7
8
9
4.4.1
Nachteile des direkten Änderns eines Attributs
42
4.4.2
Methoden zum Ändern von Attributen
42
4.5
Öffentliche und geschützte Methoden
44
4.6
Testen Sie Ihr Wissen!
44
4.7
Übungen
44
Arbeiten mit Objekten
46
5.1
Das Problem
46
5.2
Methoden, die andere Methoden aufrufen
46
5.3
Methoden in anderen Objekten aufrufen
48
5.3.1
Grundlagen
48
5.3.2
Der instanceof-Operator
50
5.3.3
Typdeklarationen
51
5.4
Testen Sie Ihr Wissen!
53
5.5
Übungen
53
Virtuelle Attribute
55
6.1
Das Problem
55
6.2
Virtuelle Attribute
55
6.2.1
Konzept
55
6.2.2
Setter für virtuelle Attribute
56
6.3
Testen Sie Ihr Wissen!
57
6.4
Übungen
57
6.5
Optionale Übungen
57
Magische Methoden
59
7.1
Das Problem
59
7.2
Magische Methoden
60
7.2.1
Konzept
60
7.2.2
Die Methode __toString()
60
7.3
Konstruktoren
62
7.3.1
Konzept
62
7.3.2
Die Methode __construct()
62
7.3.3
Parameter an __construct() übergeben
62
7.3.4
Ein assoziatives Array an den Konstruktor übergeben
64
7.4
Testen Sie Ihr Wissen!
68
7.5
Übungen
68
7.6
Optionale Übungen
68
Beziehungen zwischen Objekten
69
8.1
Das Problem
69
8.2
Objekte in anderen Objekten verstecken
69
8.3
Ganze Objekte als Parameter übergeben
71
8.4
Testen Sie Ihr Wissen!
72
8.5
Übungen
72
8.6
Optionale Übungen
72
MVC
74
9.1
Einleitung
74
9.1.1
MVC als Konzept
74
9.1.2
Unser MVC-Konzept
75
9.2
Das Beispielprojekt »hallo«
75
10
11
12
9.3
Der Model-Layer
77
9.4
Templates
80
9.4.1
Vollständige Templates
80
9.4.2
Teil-Templates
81
9.5
Der View-Layer
83
9.6
Der Controller-Layer
83
9.6.1
Controller mit Aktionen
84
9.6.2
Die Standard-Aktion
85
9.7
Zusammenfassung
87
9.8
Testen Sie Ihr Wissen!
87
9.9
Übungen
87
Klassenbasierte Controller
92
10.1
Einleitung
92
10.2
Eine klassenbasierte Fallunterscheidung
92
10.2.1
Schritt 1
92
10.2.2
Schritt 2
93
10.2.3
Schritt 3
94
10.2.4
Schritt 4
97
10.2.5
Schritt 5
99
10.3
Vererbung
101
10.4
Two-Step-Rendering
103
10.5
Zusammenfassung
105
10.6
Übungen
105
10.7
Optionale Übungen
106
Objekt-relationales Mapping
107
11.1
Das Problem
107
11.2
Verbreitete ORM-Entwurfsmuster
107
11.2.1
Active Record
108
11.2.2
Data Mapper
109
11.3
Zusammenfassung
109
11.4
Testen Sie Ihr Wissen!
110
11.5
Übungen
110
Active Record
111
12.1
Das Problem
111
12.2
Die Beispiel-Datenbank
111
12.3
Datenbank-Verbindung aufbauen
113
12.4
SELECT-Statements in PHP abbilden
114
12.4.1
findeAlle()
115
12.4.2
finde()
116
12.5
Das Speichern von Objekten
117
12.5.1
INSERT-Statements in PHP abbilden
118
12.5.2
UPDATE-Statements in PHP abbilden
119
12.6
DELETE-Statements in PHP abbilden
119
12.7
Zusammenfassung
120
12.8
Testen Sie Ihr Wissen!
122
12.9
Übungen
123
12.10
Optionale Übungen
123
13
14
15
16
Optimierungen
124
13.1
Das Problem
124
13.2
Autoloading
124
13.3
Das Formular
125
13.4
Testen Sie Ihr Wissen!
127
13.5
Übungen
128
Traits
129
14.1
Das Problem
129
14.2
Copy & Paste vom Compiler
129
14.3
ActiveRecordable
129
14.3.1
Autoloading
131
14.3.2
Trait-Verwendung
132
14.4
Findable
133
14.5
Persistable
134
14.6
Deletable
136
14.7
Zusammenfassung
136
14.8
Übungen
138
Anhang: Programmierrichtlinien
139
15.1
Einleitung
139
15.2
Richtlinien? Wieso? Weshalb? Warum?
139
15.3
Hintergrund
140
15.4
Die Empfehlungen
140
15.4.1
PSR-1: Framework-Interoperabilität
140
15.4.2
PSR-2: Stilistische Programmierrichtlinien
141
15.4.3
Ergänzungen aus den Symfony-Standards
142
15.4.4
Eigene Ergänzungen
143
Anhang: Weiterführende Informationen
145
16.1
Einführung
145
16.2
Weblinks
145
16.2.1
www.php.net
145
16.2.2
www.phpdeveloper.org
145
16.2.3
devzone.zend.com
145
Lösungen der Übungsaufgaben
146
Index
153
59
Magische Methoden In dieser Lektion lernen Sie ➤ ➤ ➤ ➤
was eine magische Methode ist. wann die magischen Methoden __toString() und __construct() aktiviert werden. was beim Aufruf von new eigentlich passiert. wie Konstruktoren Ihnen das Erzeugen von Objekten erleichtern.
7.1
Das Problem
Je häufiger Sie mit Objekten arbeiten, desto mehr werden Sie feststellen, dass Sie bestimmte Dinge mit jedem Objekt einer Klasse anstellen. Jedes Mal, wenn Sie ein Person-Objekt erzeugen, rufen Sie danach die Methoden setVorname() und setNachname() auf. Beispiel 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27