Модуль 4. ООП-реализация

Программа модуля

  • Архитектура приложения
  • Структура файлов
  • Реализация шаблона Model/View/Controller
  • Контроллеры и входные классы
  • Основные классы
  • Классы моделей
  • Представления и шаблоны
  • Формы и валидация

Приложения к модулю

Презентация:

Лабораторная работа № 1

Создание UrlManager и подключение Controller.
  1. Создайте класс UrlManger, который в конструкторе будет получать путь к списку роутов или файлу роутов (ini файл, который парсится parse_ini_file) и uri.
  2. Реализуйте метод parse, который разберет uri(может содержать гет-параметры) и вернет имя контроллера и экшена.
  3. Создайте экземпляр класса UrlManger и передайте в Application.
  4. Реализуйте метод Application->run(), который будет подключать нужный контроллер и экшн на основании данных, возвращаемых UrlManager->parse().
  5. Передайте в экшн котнроллера объект Request.
  6. Создайте два тестовых контроллера, настройте пути в карте роутов и проверьте, что всё работает.

Лабораторная работа № 2

Подключение к базе и полный цикл MVC.
  1. Создайте класс Db, который будет реализовывать подключение к базе.
  2. Объект приложения должен принимать Db в конструкторе.
  3. Перенесите модели данных Product и Brand с предыдущих заянятий в текущий проект и подключите их (подумайте о том, как правильно передавать им объект Db).
  4. Реализуйте две страницы product.html и brand.html с разными html шаблонами.
  5. Выводите все продукты и бренды на этих страницах.

Тесты

Проверка знаний.

Тест доступен по ссылке.

Домашнее задание № 1

Настройки приложения.

Вынесите настройки (подключение к бд) в файл настроек app.ini. Реализуйте класс для работы с ними, создайте объект и подключите его в приложение.

Домашнее задание № 2

Буфферизация и кеширование в MVC приложении.

Реализуйте механизм кеширования страниц (проходили в первом модуле). Это можно сделать на уровне контроллера, на уровне приложения или на уровне представления. Выберите оптимальное решение. Мехназим кеширования должен конфигурироваться через файл настроек (время кеширования и прочее).


© 2020-2021 Александр Пантелеев