Projektübersicht
Teil des Abschnitts Objektorientierte Programmierung der PHP-Journey von Coddy. Lektion 82 von 91.
Aufgabe
EinfachBeginnen wir mit dem Projekt „Bibliotheksverwaltungssystem“, indem wir die Grundlage schaffen: eine einfache Klasse Book, die in diesem Kapitel als zentrales Domänenobjekt dient.
Du organisierst deinen Code über zwei Dateien:
Book.php: Erstelle eine KlasseBook, die ein Buch aus einer Bibliothek repräsentiert. Dein Buch sollte drei Eigenschaften haben:isbn(String),title(String) undauthor(String). Verwende Konstruktor-Promotion, um deinen Code übersichtlich zu halten. Füge eine Methode namensgetInfo()hinzu, die einen formatierten String mit den Buchdetails in diesem Format zurückgibt:"[title] by [author] (ISBN: [isbn])"main.php: Binde die Book-Datei ein und erwecke deine Klasse zum Leben. Du erhältst drei Eingaben: die ISBN, den Titel und den Autor eines Buches. Erstelle mit diesen Werten eine Instanz vonBookund gib das Ergebnis des Aufrufs vongetInfo()aus.
Dies ist der erste Baustein deines Bibliothekssystems. In den kommenden Lektionen wirst du diese Grundlage erweitern, indem du Benutzer, Ausleihfunktionen und Verwaltungsfunktionen hinzufügst – alles arbeitet als zusammenhängende Anwendung zusammen.
Probier es selbst
<?php
require_once 'Book.php';
// Eingabe lesen
$isbn = trim(fgets(STDIN));
$title = trim(fgets(STDIN));
$author = trim(fgets(STDIN));
// TODO: Erstelle eine Book-Instanz mit den Eingabewerten
// TODO: Gib das Ergebnis des Aufrufs von getInfo() aus
?>Alle Lektionen in Objektorientierte Programmierung
1Grundlagen der OOP
Externe DateienEinführung in OOPKlassen vs. ObjekteDas Schlüsselwort $thisMethodenEigenschaftenKonstruktor (__construct)Destruktor (__destruct)Rückblick – Einfacher Taschenrechner4Vererbung
Grundlegende VererbungDas Schlüsselwort parent::MethodenüberschreibungDas Schlüsselwort finalAbstrakte KlassenRückblick – Mitarbeiterhierarchie7Kapselung
Öffentlich, geschützt, privatZugriffsmodifikatoren im DetailGetter und SetterInformationsverbergungKonstruktor-Promotion (8.0)Wiederholung – System zur Verwaltung von Schülerdatensätzen2Namespaces & Autoloading
Einführung in NamespacesDas use-SchlüsselwortPSR-4-Autoloading-StandardComposer-AutoloaderRückblick – Organisiertes Projekt5Schnittstellen & Verträge
Einführung in SchnittstellenSchnittstellen implementierenMehrere Schnittstellen implementierenSchnittstelle vs. abstrakte KlasseTyp-Hinweise mit SchnittstellenRückblick – Formrechner8Magische Methoden
Einführung in magische Methoden__toString & __debugInfo__get, __set, __isset, __unset__call & __callStatic__clone & Objektklonen__serialize & __unserializeRückblick – Benutzerdefinierte Sammlung11Typsystem & Fehlerbehandlung
TypdeklarationenNullable-TypenUnion- & Intersection-TypenException-KlassenBenutzerdefinierte Exception-HierarchieTry, Catch, FinallyRückblick – Formularvalidator14Projekt: Bibliotheksverwaltung
ProjektübersichtBuch- und Benutzerklassen3Klassen-Eigenschaften
Instanz- vs. statische EigenschaftenKonstanten in KlassenStatische Methoden & EigenschaftenPrivate & geschützte EigenschaftenSchreibgeschützte Eigenschaften (PHP 8.1)Zusammenfassung – Bankkonto-Manager6Polymorphie
Methodenüberschreibung erneut betrachtetPolymorphie über SchnittstellenTyp-Hinweise & Union-TypenSpätes statisches BindenRückblick – Zahlungsabwickler9Traits
Einführung in TraitsMehrere Traits verwendenAuflösung von Trait-KonfliktenAbstrakte Methoden in TraitsTraits vs. Vererbung12Entwurfsmuster Teil 1
Einführung in EntwurfsmusterSingleton-MusterFactory-MusterObserver-MusterStrategy-Muster15Abschließende Herausforderungen
E-Learning-PlattformBankingsystemEntwicklung einer SpielfigurFahrzeugvermietungÜbe selbstständig: Online-PHP-Compiler