Как использовать контейнер нужно смотреть в доках, которых нет. Тесты я запускать не буду, нафига мне это. К тому же они бестолковые. Кроме того, что задекларировать, что может твоя поделка, тесты должны ещё эмулировать непредвиденные ситуации. Вот я тебе сейчас расскажу, а ты как хочешь, можешь тест написать, можешь забить. Дело твое, за пользователей я спокоен. Ни один здравомыслящий разработчик с этим связываться не будет. Я до последнего надеялся на здравый смысл, думал наследование у тебя снизу вверх. А оказывается наоборот.
Крыша абстракция потекла еще сильнее. Причем это уже критично. Ты сделал
A)
Неявное наследование зависимостей по умолчанию. Причем не опционально.
Б) Сделал
зависимости, не сервисы, глобальными по дефолту.
Теперь смотри. Пример на коленке, абстрактный, без кода. Допустим есть два класса, наследуемых от одного родителя. А ещё хуже, использующих общий трейт. Мы, воспользовавшись твоим советом, внедряем зависимость в родителя. Замечательно работает, ура.
Теперь последовательно запускаем первый, потом второй, в нем что то меняем в зависимости, потом опять запускаем первый. Это уже не Мариванна со склада, это серьезнее. Мы ожидаем получить то, что отработано в первом объекте, тем более он расшареный. А получим результат второго. Хотя это разные классы, называются по разному. Ты эту ошибку в IDE не отловишь, так как она Runtime.
В карте твоей можно заблудиться. Карта нужна для того, что бы ориентироваться, а там совершенно не видно, откуда что берется. Там не указано явно, что откуда наследуется. Так что это не карта по определению, а дремучий лес. Бегать искать куда что внедрили раньше... Еще и синтаксиса набуробил.
А про трейты и говорить не хочется. Ты и туда запулил глобальную зависимость. Ужос. Если при наследовании еще как то можно с этим побороться, с трейтами совсем бяда.
Ну и вишенка на торте - сломал защиту. Залез в приватные свойства. Наплевал на SOLID, на инкапсуляцию, на желание разработчика защитится от дурака. Бедные разрабы PHP ночей не спали, делали уровни доступа. Ты взял, одним движением сделал все свойства публичными. Причем, как я понял, не только для зависимостей, но и любые. Во тебя поперло))) Про рефлексию узнал только что?
Ты вот думаешь, что изобрел офигенную фишку, до которой раньше додуматься ни кто не мог? Ты гений, поздравляю. А в той же Симфони одни дебилы сидят, не могут три строчки написать, чтобы все автоматически наследовалось.
Там есть наследование, но его нужно обозначить явно. Кроме того, там не обязательно прямое наследование, в php. Потому что сейчас наследование вообще не в чести, делегирование рулит. И можно это все переопределить. Вот это называется профессиональный подход. А у тебя костыль.
Я тебе на самом деле благодарен, что ты меня сподвиг карту сделать. Но дальше в твоем дерьме барахтаться не хочется. Ухожу в очередной раз
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.