0%

Обучение

Курс Backend PHP разработки

Глубокое погружение в мир Backend-разработки на PHP. От основ языка и работы с памятью до продвинутых архитектурных паттернов, баз данных и CI/CD. Курс создан практикующими разработчиками MediaTen для тех, кто хочет выйти на новый профессиональный уровень.

43
урока
5
разделов
30+
часов контента
Free
бесплатно
Видео не грузится? Отключите VPN

PHP

Основы языка, типы данных, работа с памятью, OPcache, FFI и асинхронность

9 уроков
01
01php

PHP & NGINX+FPM: Первая глава. История, которую ты должен знать!

Почему PHP жив и процветает? В этом видео мы пройдем путь от первого релиза PHP до его современного состояния, узнаем о...

02
02php

PHP — Типы данных и типизация

Короткий, но ёмкий разбор типов данных в PHP: от примитивов до enum и итераторов, динамическая и строгая типизация, рабо...

03
03php

Память в PHP: как работают zval, хэш-таблицы и GC

Разбор нюансов работы с памятью в PHP (PHP 8.2): zval, хэш‑таблицы, COW, массивы vs объекты, когда происходят копировани...

04
04php

PHP — Как работает сборщик мусора (GC), циклические ссылки и weak-ссылки

Короткий и практичный разбор работы сборщика мусора в PHP: почему возникают утечки памяти, как выявлять и устранять цикл...

05
05php

OPcache & FFI: ускоряем PHP, предзагрузка и вызов C-библиотек

В этом уроке подробно смотрим, как OPcache/APC кеширует байт‑код PHP, зачем нужна предзагрузка (preloading) и какие наст...

06
06php

PHP — Генераторы: yield, корутины и обработка больших данных

Короткий практический разбор генераторов в PHP: как работает yield, почему генераторы экономят память, примеры чтения бо...

07
07php

PHP — Нюансы оформления кода: PSR, читаемость и практики в продакшне

Короткий практический разбор правил оформления PHP‑кода: от PSR‑стандартов и соглашений именования до антипаттернов, тип...

08
08php

Корутины в PHP: генераторы, файберы и Event Loop

В этом уроке разбираем, как в PHP реализуется кооперативная многозадачность. Начинаем с генераторов и их ограничений, за...

09
09php

Асинхронность в PHP: блокировки, Event Loop и реальные инструменты

Асинхронность в PHP часто путают с «магией Event Loop». В этом видео показано, где PHP действительно блокируется, почему...

ООП

Принципы ООП, исключения, отношения между классами, наследование

5 уроков
01
01oop

PHP — Reflection API: автоподстановка, тесты и основы ООП

Короткий практический разбор Reflection в PHP: инспекция классов, свойств, методов, автоподстановка параметров и запуск...

02
02oop

PHP — Поздняя статика, статические свойства и архитектурные нюансы

Короткий практический разбор важных, но тонких моментов PHP: позднее статическое связывание (static vs self), использова...

03
03oop

PHP — Исключения: грамотная обработка, иерархия и практики

Короткий практический разбор работы с исключениями в PHP: когда использовать throw, как правильно строить иерархию исклю...

04
04oop

PHP — Отношения между классами: наследование, композиция, агрегация и ассоциация

Разбор сущностей и связей в ООП: чем отличаются наследование, реализация интерфейсов, ассоциация, агрегация и композиция...

05
05oop

PHP — Когда наследование вредит: LSP, абстракции, трейты и альтернативы

Разбираем, почему наследование часто приносит больше проблем, чем пользы: ограничения кратковременной памяти разработчик...

Архитектура

SOLID, паттерны проектирования, DDD, IoC/DI, MVC и чистая архитектура

13 уроков
01
01architecture

PHP — Приоритет методов при наследовании, трейты и принципы IoC/DI

Разбираем порядок приоритетов при наследовании и повторном использовании кода через трейты: как решать конфликты методов...

02
02architecture

Архитектура кода: как проектировать надежные и масштабируемые системы

Разбираем, что такое архитектура ПО, зачем она нужна и как её правильно применять в проектах разного размера. Поговорим...

03
03architecture

Как устроены фреймворки: жизненный цикл приложения и создание простого фреймворка (PSR)

Разбираем жизненный цикл веб‑приложения и устройство фреймворков: от входящего request до response. Показываем типовую с...

04
04architecture

MVC: что это, почему важно и как правильно разделять модель, вид и контроллер

Погружаемся в историю и суть паттерна MVC: от появления в Xerox PARC до практических ошибок при его применении. Разбирае...

05
05architecture

UseCase: куда класть бизнес‑логику, как строить кейсы и хэндлеры правильно

Обсуждаем практический подход к размещению бизнес‑логики через UseCase (ю‑кейсы). Разберём: зачем нужны кейсы, как отдел...

06
06architecture

SOLID: основные принципы для чистой и расширяемой ООП‑архитектуры

Разбираем пять принципов SOLID: Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation и Depende...

07
07architecture

DDD: предметная область, единый язык и ограниченные контексты

В этом уроке разбираем Domain-Driven Design как подход к проектированию сложных систем. Поговорим о том, зачем нужен еди...

08
08architecture

DDD: объекты значения, сущности и агрегаты

Продолжаем разбор Domain-Driven Design и переходим к тактическим шаблонам. В уроке подробно разбираем объекты значения,...

09
09architecture

Паттерны проектирования: порождающие решения и фабрики

В этом уроке разбираем паттерны проектирования как язык общения и инструмент принятия архитектурных решений. Обсуждаем и...

10
10architecture

Паттерны проектирования: структурные решения и прокси

Продолжаем разбор паттернов проектирования и переходим к структурным решениям из книги Design Patterns. В уроке рассматр...

11
11architecture

Паттерны проектирования: поведенческие шаблоны и взаимодействие объектов

В этом уроке завершаем обзор паттернов проектирования и переходим к поведенческим шаблонам из книги Design Patterns. Раз...

12
12architecture

DTO и Value Object: в чём разница и где что применять

DTO и Value Object часто путают, хотя задачи у них разные. В этом видео показано, зачем нужен DTO, какие требования к не...

13
13architecture

Coupling и Cohesion: связанность, ответственность и границы кода

В этом видео разбираются базовые архитектурные принципы, влияющие на читаемость, тестируемость и эволюцию кода: coupling...

Базы данных

SQL, индексы, транзакции, репликация, шардирование и оптимизация

14 уроков
01
01database

EAV: модель гибких атрибутов — когда применять, плюсы и ловушки

Разбираем модель данных Entity‑Attribute‑Value: зачем нужна для динамических характеристик (товары, профили и т.д.), как...

02
02database

SQL JOIN: left, right, inner, full, cross и self — простые объяснения и примеры

Разбираем все основные типы соединений в SQL: RIGHT JOIN, LEFT JOIN, FULL OUTER JOIN, INNER JOIN, CROSS JOIN и SELF JOIN...

03
03database

Нормальные формы: как проектировать БД без избыточности и аномалий

Разбираем процесс нормализации баз данных: от 1NF до 6NF и BCNF. Поясняем, зачем нужен переход по нормальным формам, как...

04
04database

Денормализация данных

В этом уроке подробно разбираем, что такое денормализация данных, зачем и когда её применять, какие выигрыши и риски она...

05
05database

Хранимые процедуры: возможности, ограничения и производительность

В этом уроке разбираем хранимые процедуры как инструмент работы с базами данных. Обсуждаем, как процедуры создаются и вы...

06
06database

Представления в базах данных: обычные и материализованные

В этом уроке разбираем представления в SQL как инструмент абстракции и оптимизации работы с данными. Поговорим о том, че...

07
07database

Оконные функции: аналитика и расчёты в SQL

В этом уроке разбираем оконные функции в SQL и их отличие от классических агрегатных запросов. Пошагово объясняем синтак...

08
08database

Триггеры в SQL: автоматизация, события и ограничения

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

09
09database

Уровни изоляции транзакций: аномалии, блокировки и реальное поведение БД

Транзакции — основа целостности данных, но их поведение напрямую зависит от уровня изоляции. В видео последовательно раз...

10
10database

Движки хранения данных MySQL: возможности, риски и сценарии применения

Ролик посвящён подсистеме хранения данных в MySQL и тому, как выбор движка влияет на транзакции, надёжность, производите...

11
11database

Репликация баз данных: топологии, журналы и подводные камни

Репликация — ключевой механизм масштабирования и отказоустойчивости баз данных. В этом видео последовательно раскрываетс...

12
12database

Шардирование баз данных: стратегии, алгоритмы и маршрутизация

Шардирование рассматривается как архитектурный приём масштабирования баз данных за пределами возможностей одного сервера...

13
13database

Типы SQL-индексов: как они работают и когда что выбирать

Индексы показаны как инструмент ускорения поиска и одновременно источник проблем при неправильном использовании. В видео...

14
14database

SQL-индексы на практике и CI/CD: от EXPLAIN до деплоя

Видео объединяет две темы: практическую работу с SQL-индексами и базовые принципы CI/CD. Сначала — как выбирать тип инде...

Тестирование

TDD, типы тестов, мутационное тестирование и CI/CD пайплайны

2 уроков
01
01testing

TDD: тесты как инструмент дизайна и надёжности

Подход Test-Driven Development показан как способ проектирования кода через тесты. Разбираются причины писать тесты зара...

02
02testing

Мутационное тестирование: как проверить качество тестов

Мутационное тестирование рассматривается как способ проверить не код, а сами тесты. В видео показано, как искусственные...

Программа курса

О курсе

От базовых концепций языка и управления памятью до продвинутых архитектурных паттернов, работы с базами данных и методологий тестирования. Программа построена на практическом опыте разработчиков и включает реальные примеры из коммерческих проектов.

PHP

Глубокое понимание языка: работа PHP-FPM с NGINX, система типов, управление памятью через zval и хэш-таблицы, сборщик мусора, OPcache, генераторы и асинхронное программирование через корутины и файберы.

  • История PHP и настройка NGINX + PHP-FPM
  • Типы данных и типизация
  • Управление памятью: zval, хэш-таблицы, Copy-on-Write
  • Сборщик мусора и weak-ссылки
  • OPcache, предзагрузка и FFI
  • Генераторы и yield
  • PSR-стандарты
  • Корутины и Event Loop
  • Асинхронность и Promises

ООП

Принципы объектно-ориентированного программирования: от инкапсуляции и полиморфизма до Reflection API, правильного построения иерархий классов и использования композиции вместо наследования.

  • Reflection API и автоподстановка зависимостей
  • Позднее статическое связывание
  • Исключения: иерархия и обработка
  • Наследование, композиция, агрегация
  • Принцип подстановки Лисков

Архитектура

Проектирование надёжных систем: принципы SOLID, паттерны GoF, Domain-Driven Design, организация бизнес-логики через UseCase и метрики качества кода — coupling и cohesion.

  • IoC и внедрение зависимостей
  • Жизненный цикл приложения и фреймворки
  • Паттерн MVC
  • UseCase и бизнес-логика
  • SOLID
  • Domain-Driven Design
  • Порождающие, структурные и поведенческие паттерны
  • DTO и Value Object
  • Coupling и Cohesion

Базы данных

Работа с реляционными БД: проектирование схемы, эффективные запросы, масштабирование через репликацию и шардирование, оптимизация через индексы и уровни изоляции транзакций.

  • Модель EAV
  • SQL JOIN
  • Нормальные формы и денормализация
  • Хранимые процедуры и представления
  • Оконные функции и триггеры
  • Уровни изоляции транзакций
  • Движки MySQL
  • Репликация и шардирование
  • Индексы и EXPLAIN

Тестирование

Методологии тестирования: Test-Driven Development как инструмент проектирования, пирамида тестирования и оценка качества тестов через мутационное тестирование.

  • TDD с примерами на PHPUnit
  • Мутационное тестирование

Частые вопросы

IconХотите узнать больше?

Подпишитесь на наши каналы, чтобы не пропустить новые уроки и материалы по PHP-разработке.

MediaTen — цифровые решенияMediaTen — креативный подход