Цитата (twin @ 9.08.2017 - 08:57) |
Мне тоже не особо нравится, но раз так положено, не переломятся пальцы дописать константу. |
изменение существующих классов это не ООП подход. Плюс ты блокируешь этими константами создание сообществом собственных сервисов.
$request = Abc::newService(Abc::REQUEST);
В одном месте будет так, а в другом
$request = Abc::newService(MyCustomSerbvice::CLASS);
в худшем случае
$request = Abc::newService('MyCustomService');
то есть ты не вырабатываешь бест-практики для работы с api твоего фреймворка. А это увеличение энтропии.
Цитата (twin @ 9.08.2017 - 08:57) |
А что не так с автокомплитом? |
Его не будет для сервисов, так как ты используешь сервис локатор. У тебя есть лишь один выход с текущей реализацией. Пихать контейнер в конструктор, сетить в свойства из контейнера сервисы, а свойствам в пхпдоках задавать конкретный класс (лучше конечно задавать интерфейс, но ты не используешь их).
Цитата (twin @ 9.08.2017 - 08:57) |
Для сторонних сервисов пока нет механизма. Планирую сделать что то типа декоратора. Они будут загружаться не этим классом.
|
Зачем делать нормальное апи, лучше нагородить сущностей и абстракций. Ты ли тот человек, который говорил что ООП должно быть в меру?
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Цитата (chee @ 9.08.2017 - 06:48) |
изменение существующих классов это не ООП подход. |
Может быть. Вообще, когда этот эксперимент начинался, я хотел свято следовать канонам ООП. Потом уже, когда он благополучно провалился, я стал делать как удобно. Может быть рассово верно использовать интерфейс в качестве своеобразной конфиги, но вот не вижу смысла плодить файлы только ради идеи. Вполне нормально они там устроились, константы эти.
Цитата (chee @ 9.08.2017 - 06:48) |
В одном месте будет так, а в другом |
Метод Abc::newService(), как и сам билдер, не предназначены для регистрации сторонних сервисов. Только для штатных. Для простой регистрации пока механизма нет. Есть контейнер, который сам реализован в виде сервиса. Декоратор в планах, для модификации штатных. Тоже в виде сервиса. Там вообще почти все в виде сервисов) Их будет великое множество, и чтобы разделить мух и котлеты я как раз и не хочу задействовать этот билдер для построения кастомных сервисов. Так что это своего рода ограничитель, чтоб не пытались запустить свои приблуды через штатный механизм.
Цитата (chee @ 9.08.2017 - 06:48) |
Ты ли тот человек, который говорил что ООП должно быть в меру? |
Меня Ron покусал.
На самом деле там ООП гораздо больше, чем мне хотелось бы. Что поделать, тяжелое наследие эксперимента.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.