[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Код ревью ABC-фреймворка
Страницы: 1, 2, 3
chee
Цитата (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)
Для сторонних сервисов пока нет механизма. Планирую сделать что то типа декоратора. Они будут загружаться не этим классом.

Зачем делать нормальное апи, лучше нагородить сущностей и абстракций. Ты ли тот человек, который говорил что ООП должно быть в меру?


_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
twin
Цитата (chee @ 9.08.2017 - 06:48)
изменение существующих классов это не ООП подход.
Может быть. Вообще, когда этот эксперимент начинался, я хотел свято следовать канонам ООП. Потом уже, когда он благополучно провалился, я стал делать как удобно. Может быть рассово верно использовать интерфейс в качестве своеобразной конфиги, но вот не вижу смысла плодить файлы только ради идеи. Вполне нормально они там устроились, константы эти.

Цитата (chee @ 9.08.2017 - 06:48)
В одном месте будет так, а в другом

Метод Abc::newService(), как и сам билдер, не предназначены для регистрации сторонних сервисов. Только для штатных. Для простой регистрации пока механизма нет. Есть контейнер, который сам реализован в виде сервиса. Декоратор в планах, для модификации штатных. Тоже в виде сервиса. Там вообще почти все в виде сервисов) Их будет великое множество, и чтобы разделить мух и котлеты я как раз и не хочу задействовать этот билдер для построения кастомных сервисов. Так что это своего рода ограничитель, чтоб не пытались запустить свои приблуды через штатный механизм.
Цитата (chee @ 9.08.2017 - 06:48)
Ты ли тот человек, который говорил что ООП должно быть в меру?
Меня Ron покусал. biggrin.gif На самом деле там ООП гораздо больше, чем мне хотелось бы. Что поделать, тяжелое наследие эксперимента. sad.gif

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.