nmk

Лекції (36 годин):

Змістовний модуль 1. Основи мови PHP та веброзробки

1 Вступ до веброзробки та екосистеми PHP (Лекція 1. 2 години)

Огляд архітектури клієнт-сервер. Встановлення та налаштування локального сервера (XAMPP/MAMP) та базовий синтаксис PHP.

2 Змінні, типи даних та оператори (Лекція 2. 2 години)

Детальне вивчення динамічної типізації в PHP. Робота з числами, рядками (конкатенація, інтерполяція) та логічними операторами.

3 Керуючі конструкції: умови та цикли (Лекція 3. 2 години)

Керування потоком програми. Використання if, else, switch, match та циклів for, while, do-while для обробки даних.

4 Функції в PHP: вдосконалення коду (Лекція 4. 2 години)

Створення користувацьких функцій, передача аргументів (за значенням і посиланням), розгляд області видимості змінних (global).

5 Структури даних: Масиви (Лекція 5. 2 години)

Знайомство з індексованими, асоціативними та багатовимірними масивами. Огляд корисних вбудованих функцій для масивів (сортування, пошук).

Змістовний модуль 2. Взаємодія з клієнтом та збереження стану

6 Основи протоколу HTTP та обробка запитів (Лекція 6. 2 години)

Як клієнт (браузер) спілкується з сервером. Суперглобальні масиви $_GET та $_POST і передача параметрів в URL.

7 Робота з HTML-формами (Лекція 7. 2 години)

Отримання даних з форм від користувача. Базова валідація на стороні сервера (перевірка на порожнечу, тип даних).

8 Завантаження та обробка файлів (Лекція 8. 2 години)

Вивчення суперглобального масиву $_FILES. Процес завантаження зображень та документів на сервер, переміщення та перевірка розширень.

9 Збереження стану користувача. Cookies та Sessions (Лекція 9. 2 години)

Проблема stateless протоколу HTTP. Робота з механізмами setcookie та $_SESSION для реалізації найпростішої авторизації (входу користувача).

Змістовний модуль 3. Основи роботи з базами даних (MySQL)

10 Вступ до баз даних та PhpMyAdmin (Лекція 10. 2 години)

Теоретичні основи таблиць, стовпців та зв’язків. Огляд базових команд SQL: SELECT, INSERT, UPDATE, DELETE.

11 Підключення бази даних у PHP (PDO) (Лекція 11. 2 години)

Різниця між розширеннями mysqli та PDO. Налаштування з’єднання (Connection String) та обробка помилок try-catch.

12 Реалізація CRUD: Читання та Створення (Лекція 12. 2 години)

Як правильно формувати SQL-запити через PHP. Виведення списку записів з БД та процес додавання нового (створення ресурсу).

13 Реалізація CRUD: Оновлення та Видалення (Лекція 13. 2 години)

Робота з ідентифікаторами (ID). Оновлення існуючих даних у формі та безпечне видалення записів з бази.

14 Безпека БД та підготовлені запити (Лекція 14. 2 години)

Що таке SQL-ін’єкція та як хакери зламують сайти. Використання Prepared Statements (підготовлених виразів) у PDO.

Змістовний модуль 4. Базова архітектура та випуск проєкту (MVP)

15 Організація коду: поділ логіки та подання (Лекція 15. 2 години)

Проблема змішування PHP з HTML. Основи патерну MVC (Model-View-Controller) та використання require/include для шаблонізації.

16 Вступ до Об’єктно-Орієнтованого програмування (ООП) (Лекція 16. 2 години)

Введення в об’єктно-орієнтоване програмування. Поняття класів, об’єктів, властивостей та методів (інкапсуляція).

17 Безпека веб-застосунків: Паролі та XSS (Лекція 17. 2 години)

Функції password_hash() та password_verify(). Захист від міжсайтового скриптингу (XSS) за допомогою htmlspecialchars().

18 Тестування, дебагінг та розгортання (Лекція 18. 2 години)

Як шукати баги. Огляд популярних безкоштовних хостингів. Завантаження проєкту на реальний сервер.

Лабораторні роботи (36 годин):

Мета: Створити MVP “Менеджер завдань” (Task Manager) з підтримкою профілів користувачів.

1 Встановлення сервера та “Hello World” (Лабораторна 1. 2 години)

Розгортання локального сервера, виконання перевірочного скрипта та налаштування IDE.

2 Виведення динамічного контенту (Лабораторна 2. 2 години)

Створення базової HTML-структури сайту. Інтеграція PHP-змінних одразу у розмітку.

3 Робота з умовами в розмітці (Лабораторна 3. 2 години)

Застосування if-else для зміни візуального оформлення елементів (наприклад, підсвічування “прострочених” завдань).

4 Форматування даних власними функціями (Лабораторна 4. 2 години)

Написання власних функцій для обробки та обрізання тексту або виведення дати в українському форматі.

5 Зберігання та виведення статусу (Масиви) (Лабораторна 5. 2 години)

Моделювання списку завдань за допомогою багатовимірного масиву та їх виведення через цикл foreach.

6 HTML-форма “Створити завдання” (Лабораторна 6. 2 години)

Реалізація сторінки додавання, приймання даних через метод POST та перегляд їх через var_dump().

7 Валідація даних форми (Лабораторна 7. 2 години)

Перевірка, чи не відправив користувач порожні поля. Виведення червоних помилок безпосередньо над формою.

8 Завантаження файлів (Робота з файлами) (Лабораторна 8. 2 години)

Додавання до формы атрибута enctype="multipart/form-data" та збереження картинки-аватара на локальний диск.

9 Сторінка логіну (Сесії) (Лабораторна 9. 2 години)

Створення простого екрану входу з використанням захардкоженого логіну/пароля. Запис статусу в $_SESSION.

10 Налаштування СКБД MySQL (Лабораторна 10. 2 години)

Встановлення бази через phpMyAdmin. Створення БД task_manager та таблиць users і tasks.

11 Зв’язок скрипта з MySQL (Лабораторна 11. 2 години)

Написання класу або файла підключення (PDO). Тестування з’єднання та обробка PDOException.

12 Читання завдань із бази (Лабораторна 12. 2 години)

Заміна статичного списку масивів (із Лаб. №5) на результат виконання SQL-запиту SELECT.

13 Додавання завдань у БД (Лабораторна 13. 2 години)

Виконання операції INSERT. Збереження отриманих даних із форми у реальну таблицю бази даних.

14 Видалити/Редагувати (Prepared Statements) (Лабораторна 14. 2 години)

Реалізація дій “Видалити” (через посилання з ?id=X) та “Виконано”. Захист цих запитів через PDO bindParam.

15 Рефакторинг (Організація файлів) (Лабораторна 15. 2 години)

Поділ великого файлу (спагеті-коду) на окремі скрипти: header.php, footer.php та файли логіки обробки.

16 Переведення логіки на Об’єктно-орієнтоване програмування (OOP) (Лабораторна 16. 2 години)

Створення найпростіших класів TaskController та UserAuth, перенесення функцій у методи класів.

17 Реєстрація користувачів (Безпека) (Лабораторна 17. 2 години)

Створення форми реєстрації. Реальне хешування нового пароля у базі (password_hash) та екранування виведення.

18 Фіналізація MVP-проєкту та його підготовка до здачі (Лабораторна 18. 2 години)

Тестування проєкту, перевірка умов доступу (доступ до завдань лише після логіну). Демонстрація курсу.

Самостійна робота (48 годин)

1 Базове вивчення функцій роботи з рядками та датою (4 години)

Ознайомлення учнів з офіційною документацією (php.net). Практика використання strlen, strpos, date, strtotime.

2 Просунута робота з масивами (4 години)

Розбір функцій сортування (sort, ksort), фільтрації (array_filter) та зміни (array_map). Створення власного мікро-довідника.

3 Математичні функції в PHP (4 години)

Робота з rand(), ceil(), floor(). Реалізація калькулятора, що працює через GET запити (передача параметрів для математичних операцій).

4 Робота з регулярними виразами (RegEx) (4 години)

Застосування preg_match() для складної бекенд-валідації. Перевірка телефонних номерів та електронних пошт на коректність формату.

5 Поглиблене вивчення протоколу HTTP (4 години)

Розбір специфікацій заголовків (Headers). Розбір різниці між 200, 301, 302, 403, 404, та 500 статус-кодами.

6 Кешування на рівні сервера (4 години)

Як і навіщо керувати кешем браузера з боку PHP (header("Cache-Control: ...")). Плюси та мінуси кешування.

7 Принципи нормалізації баз даних (4 години)

Теоретичний блок. Аналіз структури таблиць. Пояснення Першої (1ФН), Другої (2ФН) та Третьої (3ФН) нормальних форм баз даних.

8 Зв’язки між таблицями (SQL JOIN) (4 години)

Написання складних запитів. Вивчення INNER JOIN та LEFT JOIN для отримання списку завдань у прив’язці до ідентифікатора (імені) користувача.

9 Альтернативні формати даних (JSON) (4 години)

Знайомство з форматом JSON. Використання функцій json_encode() та json_decode() для роботи з зовнішніми структурами або найпростішим API.

10 Архітектурний патерн MVC (Розширена теорія) (4 години)

Дослідження загального концепту Model-View-Controller. Ознайомлення з тим, як він реалізується в популярних фреймворках (напр., Laravel).

11 Теоретичні основи ООП: поліморфізм та наслідування (4 години)

Читання документації по створенню дочірніх (extends) класів, знайомство з абстрактними класами та інтерфейсами у PHP.

12 Підготовка звітності та презентації MVP (4 години)

Написання технічного звіту за результатами лабораторних робіт та самостійна перевірка створеного “Менеджеру завдань” (QA/Тестування).