Пишу свою реализацию dependency injection на php

Стоит ли её дальше писать

  • Да

    Голосов: 3 20,0%
  • Нет

    Голосов: 3 20,0%
  • Я не знаю что это и зачем

    Голосов: 2 13,3%
  • ЭОС

    Голосов: 7 46,7%

  • Всего проголосовало
    15

AmdY

Пью пиво
Команда форума
smpl, речь не о синтаксическом сахаре, а о базовых принципах ООП - инкапсуляции. Реализации фабрики нужно скрывать внутри контейнера, при этом ник-то не мешает реализовать возможность добавления других стратегий, при этом разделив добавление стратегии и её использование.
 

smpl

Новичок
Реализации фабрики нужно скрывать внутри контейнера
Так сейчас так и сделано есть ContainerInterface он знает как получить объект(все больше ему ничего не надо знать он отвечает за объект который предоставляет), есть LocatorInterface он знает о контейнерах, есть имплементации ContainerInterface например Factory, Service которые по своему получают объекты и возможность добавления стратегий тоже есть имплементишь интерфейс ContainerInterface вот тебе и новая стратегия которая работает как надо тебе.

а то что ты говоришь когда один объект отвечает за все приходит в итоге к god object

по поводу реализации фабрики во внуторь контейнера это одна из фитч(то что она снаружи, меньше связанность) которая придает гибкость на этапе конфигурации, можно конечно сделать конфигурацию на базе массивов и уже внутри по ключу container проверять может ли он быть найден(такое будет в json, xml и упрощенной конфигурации) и так далее, но это усложняет код, убирает auto complete кода и существенно ограничивает возможности.

я шаз свободное время трачу на плагин для phpstorm (документации крайне мало) там синтаксис будет простой который позволит описывать return type в зависимости от аргументов и авто комлит доступных значений в аргументы.
 

Yaponchick

Новичок
Никогда не поверю, что человек, не умеющий грамотно писать на родном языке, в состоянии грамотно писать на иностранных.
Никогда не поверю, что человек, сидящий сутками на форуме, способен работать кем-то кроме как наполнителем.
 
Сверху