Огляд архітектури клієнт-сервер. Встановлення та налаштування локального сервера (XAMPP/MAMP) та базовий синтаксис PHP.
Детальне вивчення динамічної типізації в PHP. Робота з числами, рядками (конкатенація, інтерполяція) та логічними операторами.
Керування потоком програми. Використання if, else, switch, match та циклів for, while, do-while для обробки даних.
Створення користувацьких функцій, передача аргументів (за значенням і посиланням), розгляд області видимості змінних (global).
Знайомство з індексованими, асоціативними та багатовимірними масивами. Огляд корисних вбудованих функцій для масивів (сортування, пошук).
Як клієнт (браузер) спілкується з сервером. Суперглобальні масиви $_GET та $_POST і передача параметрів в URL.
Отримання даних з форм від користувача. Базова валідація на стороні сервера (перевірка на порожнечу, тип даних).
Вивчення суперглобального масиву $_FILES. Процес завантаження зображень та документів на сервер, переміщення та перевірка розширень.
Проблема stateless протоколу HTTP. Робота з механізмами setcookie та $_SESSION для реалізації найпростішої авторизації (входу користувача).
Теоретичні основи таблиць, стовпців та зв’язків. Огляд базових команд SQL: SELECT, INSERT, UPDATE, DELETE.
Різниця між розширеннями mysqli та PDO. Налаштування з’єднання (Connection String) та обробка помилок try-catch.
Як правильно формувати SQL-запити через PHP. Виведення списку записів з БД та процес додавання нового (створення ресурсу).
Робота з ідентифікаторами (ID). Оновлення існуючих даних у формі та безпечне видалення записів з бази.
Що таке SQL-ін’єкція та як хакери зламують сайти. Використання Prepared Statements (підготовлених виразів) у PDO.
Проблема змішування PHP з HTML. Основи патерну MVC (Model-View-Controller) та використання require/include для шаблонізації.
Введення в об’єктно-орієнтоване програмування. Поняття класів, об’єктів, властивостей та методів (інкапсуляція).
Функції password_hash() та password_verify(). Захист від міжсайтового скриптингу (XSS) за допомогою htmlspecialchars().
Як шукати баги. Огляд популярних безкоштовних хостингів. Завантаження проєкту на реальний сервер.
Мета: Створити MVP “Менеджер завдань” (Task Manager) з підтримкою профілів користувачів.
Розгортання локального сервера, виконання перевірочного скрипта та налаштування IDE.
Створення базової HTML-структури сайту. Інтеграція PHP-змінних одразу у розмітку.
Застосування if-else для зміни візуального оформлення елементів (наприклад, підсвічування “прострочених” завдань).
Написання власних функцій для обробки та обрізання тексту або виведення дати в українському форматі.
Моделювання списку завдань за допомогою багатовимірного масиву та їх виведення через цикл foreach.
Реалізація сторінки додавання, приймання даних через метод POST та перегляд їх через var_dump().
Перевірка, чи не відправив користувач порожні поля. Виведення червоних помилок безпосередньо над формою.
Додавання до формы атрибута enctype="multipart/form-data" та збереження картинки-аватара на локальний диск.
Створення простого екрану входу з використанням захардкоженого логіну/пароля. Запис статусу в $_SESSION.
Встановлення бази через phpMyAdmin. Створення БД task_manager та таблиць users і tasks.
Написання класу або файла підключення (PDO). Тестування з’єднання та обробка PDOException.
Заміна статичного списку масивів (із Лаб. №5) на результат виконання SQL-запиту SELECT.
Виконання операції INSERT. Збереження отриманих даних із форми у реальну таблицю бази даних.
Реалізація дій “Видалити” (через посилання з ?id=X) та “Виконано”. Захист цих запитів через PDO bindParam.
Поділ великого файлу (спагеті-коду) на окремі скрипти: header.php, footer.php та файли логіки обробки.
Створення найпростіших класів TaskController та UserAuth, перенесення функцій у методи класів.
Створення форми реєстрації. Реальне хешування нового пароля у базі (password_hash) та екранування виведення.
Тестування проєкту, перевірка умов доступу (доступ до завдань лише після логіну). Демонстрація курсу.
Ознайомлення учнів з офіційною документацією (php.net). Практика використання strlen, strpos, date, strtotime.
Розбір функцій сортування (sort, ksort), фільтрації (array_filter) та зміни (array_map). Створення власного мікро-довідника.
Робота з rand(), ceil(), floor(). Реалізація калькулятора, що працює через GET запити (передача параметрів для математичних операцій).
Застосування preg_match() для складної бекенд-валідації. Перевірка телефонних номерів та електронних пошт на коректність формату.
Розбір специфікацій заголовків (Headers). Розбір різниці між 200, 301, 302, 403, 404, та 500 статус-кодами.
Як і навіщо керувати кешем браузера з боку PHP (header("Cache-Control: ...")). Плюси та мінуси кешування.
Теоретичний блок. Аналіз структури таблиць. Пояснення Першої (1ФН), Другої (2ФН) та Третьої (3ФН) нормальних форм баз даних.
Написання складних запитів. Вивчення INNER JOIN та LEFT JOIN для отримання списку завдань у прив’язці до ідентифікатора (імені) користувача.
Знайомство з форматом JSON. Використання функцій json_encode() та json_decode() для роботи з зовнішніми структурами або найпростішим API.
Дослідження загального концепту Model-View-Controller. Ознайомлення з тим, як він реалізується в популярних фреймворках (напр., Laravel).
Читання документації по створенню дочірніх (extends) класів, знайомство з абстрактними класами та інтерфейсами у PHP.
Написання технічного звіту за результатами лабораторних робіт та самостійна перевірка створеного “Менеджеру завдань” (QA/Тестування).