Przegląd projektu
Część sekcji Programowanie obiektowe ścieżki PHP w Coddy. Lekcja 82 z 91.
Wyzwanie
ŁatwyRozpocznijmy projekt Systemu zarządzania biblioteką od przygotowania podstaw: prostej klasy Book, która będzie pełnić funkcję głównego obiektu domenowego w tym rozdziale.
Rozmieścisz swój kod w dwóch plikach:
Book.php: Utwórz klasęBook, która reprezentuje książkę biblioteczną. Twoja książka powinna mieć trzy właściwości:isbn(string),title(string) iauthor(string). Użyj promocji właściwości konstruktora, aby zachować przejrzystość kodu. Dodaj metodę o nazwiegetInfo(), która zwraca sformatowany ciąg znaków ze szczegółami książki w tym formacie:"[title] by [author] (ISBN: [isbn])"main.php: Dołącz plik Book i ożyw swoją klasę. Otrzymasz trzy dane wejściowe: ISBN książki, jej tytuł i autora. Utwórz egzemplarz klasyBookz tymi wartościami i wyświetl wynik wywołaniagetInfo().
To pierwszy element składowy twojego systemu bibliotecznego. W kolejnych lekcjach rozbudujesz te podstawy, dodając użytkowników, funkcje wypożyczania i funkcje administracyjne, które będą współpracować w ramach jednej spójnej aplikacji.
Spróbuj swoich sił
<?php
require_once 'Book.php';
// Odczytaj dane wejściowe
$isbn = trim(fgets(STDIN));
$title = trim(fgets(STDIN));
$author = trim(fgets(STDIN));
// TODO: Utwórz instancję Book z wartościami wejściowymi
// TODO: Wypisz wynik wywołania getInfo()
?>Wszystkie lekcje w sekcji Programowanie obiektowe
1Podstawy programowania obiektowego
Pliki zewnętrzneWprowadzenie do programowania obiektowegoKlasy a obiektySłowo kluczowe $thisMetodyWłaściwościKonstruktor (__construct)Destruktor (__destruct)Powtórka — prosty kalkulator4Dziedziczenie
Podstawy dziedziczeniaSłowo kluczowe parent::Przesłanianie metodSłowo kluczowe finalKlasy abstrakcyjnePowtórzenie – hierarchia pracowników7Enkapsulacja
Public, protected, privateModyfikatory dostępu w szczegółachGettery i setteryUkrywanie informacjiPromocja parametrów konstruktora (8.0)Podsumowanie — system ewidencji studentów2Przestrzenie nazw i autoloading
Wprowadzenie do przestrzeni nazwSłowo kluczowe useStandard autoloadingu PSR-4Autoloader ComposeraPodsumowanie – uporządkowany projekt5Interfejsy i kontrakty
Wprowadzenie do interfejsówImplementowanie interfejsówImplementowanie wielu interfejsówInterfejs a klasa abstrakcyjnaPodpowiadanie typów za pomocą interfejsówPodsumowanie — kalkulator kształtów8Metody magiczne
Wprowadzenie do metod magicznych__toString i __debugInfo__get, __set, __isset, __unset__call i __callStatic__clone i klonowanie obiektów__serialize i __unserializePodsumowanie — własna kolekcja11System typów i obsługa błędów
Deklaracje typówTypy nullableTypy sumy i przecięciaKlasy wyjątkówNiestandardowa hierarchia wyjątkówTry, Catch, FinallyPodsumowanie — walidator formularzy14Projekt: Zarządzanie biblioteką
Przegląd projektuKlasy książki i użytkownika3Właściwości klas
Właściwości instancji a właściwości statyczneStałe w klasachMetody i właściwości statyczneWłaściwości prywatne i chronioneWłaściwości tylko do odczytu (PHP 8.1)Podsumowanie — menedżer kont bankowych6Polimorfizm
Ponowne omówienie nadpisywania metodPolimorfizm za pomocą interfejsówPodpowiedzi typów i typy sumyPóźne wiązanie statycznePodsumowanie — procesor płatności9Cechy
Wprowadzenie do cechKorzystanie z wielu cechRozwiązywanie konfliktów cechMetody abstrakcyjne w cechachCechy a dziedziczenie12Wzorce projektowe, część 1
Wprowadzenie do wzorców projektowychWzorzec SingletonWzorzec FactoryWzorzec ObserverWzorzec StrategyPoćwicz samodzielnie: Kompilator PHP online