PHP ООП

PHP ООП разработка — набор заданий для PHP-разработчика по использованию объектно-ориентированного подхода

Задание  1: PHP  ООП

Повторите материал по ООП (https://www.youtube.com/playlist?list=PLOQDek48BpZGsfx_7Z6sofqF3YRtM-VC4), вспомните работу с пространствами имён (https://www.youtube.com/watch?v=UUDOjOXA-d8)

  1. Создайте класс Goods (свойства: title, manufactured, price, color; методы: show, export)
  2. Создайте класс GoodsCollection (свойство: collection; методы: show, push, add, item)
  3. Создайте файл autoload.php, которые будет заниматься автоподгрузкой существующих классов
  4. Создайте файл php3-task1.php — основной файл задания; создайте экземпляры классов и выведите товары на странице
  5. [
     [ "title" => "Lenovo Vibe Shot", "manufacturer" => "Lenovo", "price" => 9e3, "color" => "black"],
     [ "title" => "Apple iPhone 7 128GB", "manufacturer" => "Apple", "price" => 9e4, "color" => "white" ],
     [ "title" => "Samsung Galaxy S8", "manufacturer" => "Samsung", "price" => 5e4, "color" => "grey" ],
     [ "title" => "Lenovo P2", "manufacturer" => "Lenovo", "price" => 2e4, "color" => "grey" ],
     [ "title" => "Xiaomi Mi6 128GB", "manufacturer" => "Xiaomi", "price" => 7e3, "color" => "white" ],
     [ "title" => "Xiaomi Mi Note 3 64Gb", "manufacturer" => "Xiaomi", "price" => 2e4, "color" => "black" ],
    ]
  6. Использование пространства имён — обязательно

Задание  2: Работа с шаблонами

— найдите и изучите материал по шаблонам проектирования, в PHP в частности. Хороший материал есть в книге Мэтта Зандстры
— реализуйте два любых шаблона из предложенных:

Шаблон проектирование Абстрактная Фабрика (Abstract Fabric) https://www.youtube.com/watch?v=8TtIcCC3kCQ
Шаблон проектирования Стратегия (Strategy) https://www.youtube.com/watch?v=xDAIxloy-QM
Шаблон проектирования Фабричный метод (FactoryMethod) https://www.youtube.com/watch?v=Jm4uvVD7qQc
Шаблон проектирование Адаптер (Adapter) https://www.youtube.com/watch?v=a-Y3q-1h2Es
Шаблон проектирования Декоратор (Decorator) https://www.youtube.com/watch?v=7MpBSwm4NeE
Шаблон проектирования Одиночка (Singleton) https://www.youtube.com/watch?v=jYm82blvi18

Задание  3: Знакомство с PHPDoc

 — Снабдите phpdoc-комментариями все классы из предыдущего задание

— Сгенерируйте документацию при помощи Phpdoc

Задание  4: Парсинг

 Нужно распарсить информацию о курсах с вот этой страницы https://www.specialist.ru/section/web-programming (получить название курса, URL ссылки, сохранить фотографию, узнать кол-во часов и стоимость). Необходимо использовать классы для работы с DOM. Примечание: вместо курсов на сайте Специалиста, можете взять любой сайт и распарсить информацию с него, только чтобы кол-во полей и записей было приблизительно такое, какое описал для курса

Задание  5: MVC

Реализовать шаблон MVC на своих классах.

Задание  6: Класс для построения диаграмм

Задание 6. Напишите и задокументируйте класс для создания диаграмм «бубликов», как http://www.chartjs.org/samples/latest/charts/doughnut.html В этом задании нужно использовать строго работу с библиотекой GD2. Примечание: можно посмотреть как устроен Google Chart API

Задание  7: SOAP-сервис

 Реализовать SOAP-сервис. Клиент должен отправлять запросы с названиями товара, цветом, производителем (из первого задания), а сервер должен возвращать ответ. Приложить к отчёту wsdl-файл.

Задание  8: Вспомогательные инструменты

Проверьте код любого класса одного из предыдущих заданий используя утилиты
— https://github.com/squizlabs/PHP_CodeSniffer
— https://github.com/phpstan/phpstan

Задание  9: PHPUnit

  1. Познакомьтесь с PHPUnit. Создайте тестовый класс и набор тестов для своего класса (не менее 10 тестовых проверок).