Загрузка...

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

Разбираем порядок приоритетов при наследовании и повторном использовании кода через трейты: как решать конфликты методов, создавать псевдонимы и менять область видимости. Во второй части — глубокое объяснение инверсии управления (IoC) и внедрения зависимостей (DI): контейнеры, автоподстановка, сервис‑провайдеры, ограничения и антипаттерны (сервис‑локатор). Практичные рекомендации по конструкторному/методному внедрению, правилу четырёх зависимостей и разделению ответственности.

Таймкоды:
00:00:03 — Приоритетность методов при наследовании: общая идея
00:01:01 — Пример: трейт и класс с одинаковым методом `safe`
00:01:38 — Пример: базовый родительский класс vs трейт
00:02:34 — Конфликт методов в трейтах (два трейта `talking` и `voice`)
00:03:34 — Решение конфликта: `insteadof` и ручная регулировка
00:04:14 — Изменение области видимости метода (public → private)
00:04:43 — Создание псевдонима метода: `as` и смена видимости
00:05:39 — Объединение трейтов и риски путаницы
00:06:46 — Введение в инверсию управления (IoC): понятие и назначение
00:07:38 — Преимущества внедрения зависимостей (тестируемость, подмена реализаций)
00:08:35 — Принцип IoC: слабая связанность и «Hollywood»‑принцип
00:09:30 — IoC vs контейнер: различия и назначение контейнера
00:11:29 — Функции контейнеров: хранение зависимостей и автоподстановка
00:13:30 — Внедрение через конструктор: пример с парсером данных
00:14:24 — Преимущества `constructor property promotion` в PHP
00:15:15 — Внедрение через метод: когда применять
00:16:14 — Количество зависимостей: допустимость и архитектурные ограничения
00:18:05 — Ручная настройка зависимостей: минусы и примеры
00:20:39 — Автовайринг: как контейнер создаёт сервисы по тип‑хинтам
00:21:47 — Реализация автовайринга в Laravel: сервис‑провайдеры и рефлексия
00:24:36 — Работа с зависимостями в View: `define`/компоненты и автоподстановка
00:26:54 — Ограничения автовайринга при ручном создании экземпляров
00:27:42 — ПСР и контейнерный интерфейс: стандартизация взаимодействия
00:29:32 — Антипаттерн: сервис‑локатор и почему он вреден
00:30:43 — Паттерн фабричного метода: делегирование создания объектов
00:33:37 — Гибкость через фасады и конфигурацию
00:35:11 — Правило четырёх зависимостей: признак проблем в дизайне
00:38:04 — Разделение обязанностей: декомпозиция больших классов
00:39:37 — Управление зависимостями по мере необходимости (ленивая загрузка)
00:40:47 — Вопрос о протекторе двумета (обсуждение)
00:41:37 — Конфликты в трейтах: невозможные ситуации для объединения
00:42:46 — Завершение: IoC vs контейнер vs сервис, напоминание о защите животных

Видео 13 | PHP — Приоритет методов при наследовании, трейты и принципы IoC/DI канала MediaTen — Digital продакшн
Яндекс.Метрика
Все заметки Новая заметка Страницу в заметки
Страницу в закладки Мои закладки
На информационно-развлекательном портале SALDA.WS применяются cookie-файлы. Нажимая кнопку Принять, вы подтверждаете свое согласие на их использование.
О CookiesНапомнить позжеПринять