Projektübersicht
Teil des Abschnitts Objektorientierte Programmierung der PHP-Journey von Coddy — Lektion 82 von 91.
Aufgabe
EinfachLassen Sie uns das Projekt Library Management System starten, indem wir das Fundament legen — eine einfache Book-Klasse, die in diesem Kapitel als zentrales Domänenobjekt dienen wird.
Sie werden Ihren Code in zwei Dateien organisieren:
Book.php— Erstellen Sie eineBook-Klasse, die ein Bibliotheksbuch darstellt. Ihr Buch sollte drei Eigenschaften haben:isbn(string),title(string) undauthor(string). Verwenden Sie Constructor Promotion, um Ihren Code sauber zu halten. Fügen Sie eine Methode namensgetInfo()hinzu, die einen formatierten String mit den Details des Buches in diesem Format zurückgibt:"[title] by [author] (ISBN: [isbn])"main.php— Binden Sie die Book-Datei ein und erwecken Sie Ihre Klasse zum Leben. Sie erhalten drei Eingaben: die ISBN, den Titel und den Autor eines Buches. Erstellen Sie eineBook-Instanz mit diesen Werten und geben Sie das Ergebnis des Aufrufs vongetInfo()aus.
Dies ist der erste Baustein Ihres Bibliothekssystems. In den kommenden Lektionen werden Sie auf diesem Fundament aufbauen, indem Sie Benutzer, Ausleihfunktionen und Verwaltungsfunktionen hinzufügen — die alle als zusammenhängende Anwendung zusammenarbeiten.
Probier es selbst
<?php
require_once 'Book.php';
// Eingabe lesen
$isbn = trim(fgets(STDIN));
$title = trim(fgets(STDIN));
$author = trim(fgets(STDIN));
// TODO: Erstellen Sie eine Book-Instanz mit den Eingabewerten
// TODO: Geben Sie das Ergebnis des Aufrufs von getInfo() aus
?>Alle Lektionen in Objektorientierte Programmierung
1Grundlagen der OOP
Externe DateienEinführung in die OOPKlassen vs. ObjekteDas $this-SchlüsselwortMethodenEigenschaftenKonstruktor (__construct)Destruktor (__destruct)Rückblick - Einfacher Taschenrechner4Vererbung
Grundlagen der VererbungDas parent:: SchlüsselwortMethoden überschreibenDas final SchlüsselwortAbstrakte KlassenZusammenfassung – Mitarbeiter-Hierarchie7Kapselung
Public, Protected, PrivateZugriffsmodifikatoren im DetailGetter und SetterInformation HidingConstructor Promotion (8.0)Zusammenfassung – Studentenverwaltungssystem2Namensräume & Autoloading
Einführung in NamensräumeDas use-SchlüsselwortPSR-4 Autoloading-StandardComposer AutoloaderZusammenfassung – Organisiertes Projekt5Interfaces & Verträge
Einführung in InterfacesInterfaces implementierenMehrfache Interface-ImplementierungInterface vs. Abstrakte KlasseType Hinting mit InterfacesZusammenfassung – Formen-Rechner8Magische Methoden
Einführung in magische Methoden__toString & __debugInfo__get, __set, __isset, __unset__call & __callStatic__clone & Objekt-Klonen__serialize & __unserializeZusammenfassung - Eigene Collection11Typsystem & Fehlerbehandlung
TypdeklarationenNullable-TypenUnion- & Intersection-TypenException-KlassenEigene Exception-HierarchieTry, Catch, FinallyZusammenfassung - Formular-Validator14Projekt: Bibliotheksverwaltung
ProjektübersichtBuch- und Benutzerklassen3Klasseneigenschaften
Instanz- vs. statische EigenschaftenKonstanten in KlassenStatische Methoden & EigenschaftenPrivate & geschützte EigenschaftenReadonly-Eigenschaften (PHP 8.1)Zusammenfassung – Bankkonto-Manager6Polymorphismus
Method Overriding erneut betrachtetPolymorphismus über InterfacesType Hinting & Union TypesLate Static BindingZusammenfassung – Payment Processor9Traits
Einführung in TraitsVerwendung mehrerer TraitsKonfliktlösung bei TraitsAbstrakte Methoden in TraitsTraits vs. Vererbung12Entwurfsmuster Teil 1
Einführung in EntwurfsmusterSingleton-MusterFactory-MusterObserver-MusterStrategy-Muster15Abschlussherausforderungen
E-Learning-PlattformBanksystemSpielcharakter-EntwicklungFahrzeugvermietung