Модуль 6

Веб-приложения, работа с ними и с СУБД

Тема №10. Архитектура веб-приложений и дизайн (5 часов)
Архитектура приложений, шаблон проектирования MVC, формирование шаблонов с использованием PHP. Знакомство с веб-дизайном.
Cоздание простейшего приложения согласно MVC-шаблону.

Тема №11. Работа с СУБД (5 часов)
Назначение СУБД в веб-приложениях, реляционные базы данных, введение в MySQL, средства управления MySQL, Индексы, Внешние ключи и ограничение целостности, Выборки связанных данных: JOIN, LEFT JOIN, использование связки MySQL и PHP, расширение PHP PDO, использование данных MySQL в PHP-приложении.
Использование типовых запросов для управления базой данных MySQL, создание связей в MySQL, типовые выборки связанных данных, создание, удаление и просмотр MySQL-записей с помощью PHP.

Тема №12. Экосистема PHP (3 часа)
Назначение PHP-библиотек (пакетов), фреймворки и CMS, пакетный менеджер PHP (composer), автозагрузка библиотек через composer, репозиторий пакетов Packagist.
Добавление composer к разрабатываемому проекту, типовые операции с библиотеками.

Тема №13. Работа с веб-приложениями (7 часов)
Типы и назначения форм, создание форм, обработка форм посредством PHP, запросы GET и POST, загрузка файлов через HTTP протокол, ограничение на загружаемые файлы, обработка загружаемых файлов на серверной стороне, типы и назначение уведомления в веб-приложениях (Push, письма, смс), протоколы работы электронной почты (POP3, IMAP, SMTP), средства для отправки писем из PHP, отправка писем с использованием библиотек, назначение и использование отладчика, назначение и виды тестирования (unit-тестирование, функциональное тестирование), использование библиотеки тестирования PHPUnit, принципы функционирования доменов (NS-сервера, регистраторы, DNS-записи), хостинги и различия между ними (shared-хостинги, VPS, VDS), синхронизация локальной и внешней версии.
Обработка формы с помощью PHP для добавления данных в БД, загрузка файлов на сервер с помощью WEB-приложения, отправка писем с помощью PHP, создание автоматических тестов PHPUnit, развертывание проекта.