PHP

Основы языка, работа с БД, простой API

Уровень: Начальный · около 17 ч · после курса: Соберёшь REST API на чистом PHP: PDO, роутер, сессии, PSR-логирование, тесты на PHPUnit

Чему научишься

  • Написать REST API на чистом PHP: роутер, валидация, статус-коды
  • Работать с базой через PDO и подготовленные запросы
  • Использовать PSR-7/PSR-15 middleware и PSR-3 логирование
  • Внедрять зависимости через контейнер вместо global
  • Покрыть код тестами на PHPUnit
  • Применять ООП-паттерны: Repository, Factory, Service
  • Понимать разницу php-fpm и CLI, настраивать .env и opcache
  • Прочитать чужой код на Symfony и понять, что там происходит

Уроки курса (26)

Модуль 1 · Старт и синтаксис

Установка PHP, типы данных, условия, массивы, функции и рекурсия

  1. Установка, запуск и встроенный сервер - Ставим PHP нужной версии, проверяем php -v и запускаем первый скрипт
  2. Переменные, типы и строки - Данные в PHP: где живут числа, строки, почему всё иногда 'строка' и как с этим жить
  3. Условия и сравнение: == vs === - Если, иначе и почему двойное равно может подставить
  4. Циклы и массивы (включая ассоциативные) - Списки, словари и повторение без нытья
  5. Функции и include/require - Дробим код на кусочки и подключаем файлы как взрослые
  6. Рекурсия - Рекурсивные функции, базовый случай, стек вызовов, замыкания с &$self, встроенные рекурсивные инструменты PHP

Модуль 2 · Веб и данные

Формы, JSON, PDO, ошибки, мини-роутер и первый проект-API

  1. Формы и запросы (GET/POST) - Как принять данные от пользователя и не схватить багов
  2. Ошибки и исключения (try/catch) - Падаем красиво: ошибки, исключения и что с ними делать
  3. JSON в PHP - json_encode и json_decode: обмен данными с фронтом и внешними API
  4. PDO и безопасная работа с БД - SQL-инъекции - нет, prepared statements - да
  5. Мини-роутер без фреймворка - Собираем простой роутинг своими руками (и не стыдимся)
  6. Тестирование: база PHPUnit - Проверяем код, чтобы завтра не было стыдно
  7. Мини-проект: API «Список задач» - Собираем маленькое API: задачи, статусы и немного дисциплины

Модуль 3 · ООП и инфраструктура

Классы, наследование, namespaces, PSR, Composer и DI

  1. Классы и объекты: visibility, конструкторы, статика - От ассоциативных массивов к классам: свойства, методы, конструктор
  2. Наследование, abstract и интерфейсы - Когда extends - спасение, а когда - выстрел в ногу
  3. Traits, late static binding и magic-методы - Кусочки поведения для классов, к которым не подходит наследование
  4. Магические методы: полный разбор - Жизненный цикл объекта, перегрузка свойств и методов, __invoke, __clone, сериализация и цена магии
  5. Namespaces, Composer и autoload (PSR-4) - Как структурировать большой проект и не утонуть в include'ах
  6. PSR-стандарты: PSR-3, PSR-7, PSR-15 - Контракты, на которых стоит весь современный PHP
  7. DI и сервисный контейнер - От global $pdo к контейнеру и autowiring

Модуль 4 · Безопасность и сессии

Аутентификация, защита от CSRF/XSS/SQLi, REST API

  1. Сессии, cookies и аутентификация - Сессии и куки: логин, разлогин и типичные дыры в безопасности
  2. Безопасность: CSRF, XSS, SQLi, open redirect - OWASP Top-10 минимум, который знают все
  3. REST API: маршрутизация, валидация, статус-коды - Полный REST-эндпоинт без фреймворка, на голом PHP

Модуль 5 · Production и Symfony

PHP-FPM, логирование Monolog, знакомство с Symfony

  1. PHP-FPM vs CLI, .env, opcache - Как PHP реально работает в проде и что у него под капотом
  2. Логирование: PSR-3, Monolog, обработка ошибок в проде - Логи как нервная система приложения - без них ты слепой
  3. Знакомство с Symfony: компоненты, kernel, controllers - Главный PHP-фреймворк - почему его выбирают и как он устроен