1. Декораторы (делегаторы) - позволяют обернуть имеющийся в контейнере сервис аналогичным, но с доп логикой
Угу, это есть, но существенно проще.
Реализовано не как отдельный тип биндинга, а обычным замыканием которое оборачивает существующий биндинг.
$container->bind(A::class)->toSelf();
$container->decorate(А::class, function (A $decorated) {
$decorated->setSome('something');
return $decorated;
});
2. Инициализаторы - позволяют инициализировать любой сервис из контейнера при его первом вызове (на пример разрешить его зависимости, тобишь DI это по идее частный случай инициализатора)
Понял. Видел такое. Подумаю нужно ли.
3. Абстрактные фабрики - позволяют создать сервис, если он не объявлен в контейнере по его имени
Это вот это: https://github.com/zendframewo ... ories ?
Не, такого нет. Да и не очень нужно как по мне.
4. Менеджеры плагинов - это обычный контейнер, но умеющий работать только с сервисами определенного типа (класса)
Не нашел.