Обзор проекта
Часть раздела Объектно-ориентированное программирование путешествия по PHP на Coddy. Урок 82 из 91.
Задание
ЛегкоНачнём проект Library Management System с создания основы: простого класса Book, который будет служить основным объектом предметной области на протяжении всей этой главы.
Ты организуешь код в двух файлах:
Book.php: Создай классBook, представляющий книгу в библиотеке. У твоей книги должно быть three свойства:isbn(string),title(string) иauthor(string). Используй продвижение параметров конструктора, чтобы код оставался лаконичным. Добавь method с именемgetInfo(), который возвращает formatted строку с данными книги в таком формате:"[title] by [author] (ISBN: [isbn])"main.php: Подключи файл Book и создай экземпляр своего класса. Ты получишь three входных значения: ISBN, название и автора книги. Создай экземплярBookс этими values и выведи result вызоваgetInfo().
Это первый строительный блок твоей библиотечной системы. В следующих уроках ты расширишь эту основу, добавив пользователей, функциональность заимствования и административные возможности — всё это будет работать вместе как единое приложение.
Попробуйте сами
<?php
require_once 'Book.php';
// Читать ввод
$isbn = trim(fgets(STDIN));
$title = trim(fgets(STDIN));
$author = trim(fgets(STDIN));
// TODO: Создать экземпляр Book с входными значениями
// TODO: Вывести результат вызова getInfo()
?>Все уроки раздела Объектно-ориентированное программирование
1Основы ООП
Внешние файлыВведение в ООПКлассы и объектыКлючевое слово $thisМетодыСвойстваКонструктор (__construct)Деструктор (__destruct)Повторение — простой калькулятор4Наследование
Основы наследованияКлючевое слово parent::Переопределение методовКлючевое слово finalАбстрактные классыПовторение — иерархия сотрудников7Инкапсуляция
Public, Protected, PrivateМодификаторы доступа подробноГеттеры и сеттерыСокрытие информацииПродвижение конструктора (8.0)Повторение — система учёта студентов2Пространства имён и автозагрузка
Введение в пространства имёнКлючевое слово useСтандарт автозагрузки PSR-4Автозагрузчик ComposerПовторение — структурированный проект5Интерфейсы и контракты
Введение в интерфейсыРеализация интерфейсовРеализация нескольких интерфейсовИнтерфейс и абстрактный классАннотация типов с интерфейсамиПовторение — калькулятор фигур8Магические методы
Введение в магические методы__toString и __debugInfo__get, __set, __isset, __unset__call и __callStatic__clone и клонирование объектов__serialize и __unserializeПовторение — пользовательская коллекция11Система типов и обработка ошибок
Объявления типовNullable-типыОбъединение и пересечение типовКлассы исключенийПользовательская иерархия исключенийTry, Catch, FinallyПовторение — валидатор формы14Проект: управление библиотекой
Обзор проектаКлассы книг и пользователей3Свойства классов
Свойства экземпляра и статические свойстваКонстанты в классахСтатические методы и свойстваПриватные и защищённые свойстваСвойства только для чтения (PHP 8.1)Повторение — менеджер банковского счёта6Полиморфизм
Повторение переопределения методовПолиморфизм через интерфейсыАннотации типов и объединённые типыПозднее статическое связываниеПовторение — обработчик платежей9Трейты
Введение в трейтыИспользование нескольких трейтовРазрешение конфликтов трейтовАбстрактные методы в трейтахТрейты и наследование12Паттерны проектирования, часть 1
Введение в паттерны проектированияПаттерн SingletonПаттерн FactoryПаттерн ObserverПаттерн StrategyПотренируйтесь самостоятельно: Онлайн-компилятор PHP