НедоООП от Laravel (часть 1)

Вурдалак

Продвинутый новичок
Он взял и добавил, он думает по-другому, он не боится ломать стереотипы, ты просто ему завидуешь.

А если серьёзно, то мне кажется Тейлор не очень хорошо владеет PHP, иначе бы давно добавил интерфейс к абстрактной очереди. Какие-то предположения на тему обратной совместимости тоже не в тему, поскольку он там явно не боится её ломать, добавляя новые методы в интерфейс.
 

Adelf

Administrator
Команда форума
Эх. Отобрать бы эти блокноты у них и посадить за шторм...
 
  • Like
Реакции: AmdY

Вурдалак

Продвинутый новичок
https://github.com/laravel/framework/pull/18043 :)

У них есть интерфейс. И все наследники этого класса обязаны имплементить и этот интерфейс тоже! Красота!
А вот это ещё, кстати, дополнительно на ту тему интерфейсов и абстрактных классов, что мы обсуждали на форуме. Один из контрактов выглядит явно лишним.
 

Adelf

Administrator
Команда форума
@Вурдалак, да. я тоже вспомнил. Просто бояться завязываться на абстрактные классы, хотя здесь и во многих местах, типа логгера, это было бы вполне нормально. Иметь только абстрактный класс, а не интерфейс.
Ну или как ты говоришь, всем должно быть по барабану что там - абстрактный(или даже реальный) класс или интерфейс, это должен быть только один контракт, который все используют.
 

fixxxer

К.О.
Партнер клуба
Да там дохрена такого. Я вообще не знаю, зачем он добавил контракты, если на них плюет. Нравится ему duck typing - ну так не вводил бы в заблуждение.
 

Вурдалак

Продвинутый новичок
А что значит «часть 1» в заголовке? Планируется продолжение?
 

Adelf

Administrator
Команда форума
@fixxxer, ну то что там не уважают контракты, это да. Но тут глупость какая-то же! Все драйверы очередей наследуют этот класс и имплементят интерфейс.

@Вурдалак, ну я как и фиксер, знаю, что там полно такого. А при названии темы понял, что также можно будет назвать и другие, если создам. Так, что сделал задел на будущее :)
 

fixxxer

К.О.
Партнер клуба
то мне кажется Тейлор не очень хорошо владеет PHP, иначе бы давно добавил интерфейс к абстрактной очереди
Меня тут больше всего удивляет, что он вроде как с C#-бэкграундом чувак. Там бы его duck typing-и просто не скомпилировались.
 

Adelf

Administrator
Команда форума
@fixxxer, А меня нет. Он так и говорил, что после C# ему очень понравился PHP и причиной описывал как раз duck typing
Но я удивлен тем, как нормальному человеку это может нравится. Возможно, кому-то лень по-нормальному проектировать ;-)
 

fixxxer

К.О.
Партнер клуба
Меня удивляет, как нормальному человеку может нравится duck typing в современном php, где он скорее BC-костыль.
Ладно там python.
 

fixxxer

К.О.
Партнер клуба
Просто бояться завязываться на абстрактные классы, хотя здесь и во многих местах, типа логгера, это было бы вполне нормально. Иметь только абстрактный класс, а не интерфейс.
Ну тут есть некоторое здравое зерно в том, что интерфейсы в laravel/contracts и в случае чего нет лишних зависимостей. (Ну, в идеале, если бы все остальное было нормально).

С другой стороны, не вижу никаких проблем с тем, чтобы иметь pure abstract class-ы в contracts.
 

halva

Новичок
Чет действительно странно. Если ему нужен был класс без имплементации интерфейса, но с определенными общими методами, то почему этот класс не определен как трейт.
 
Последнее редактирование:

AmdY

Пью пиво
Команда форума
Чувак в свободное от своих проектов время говнокодит фреймворк, у него там легаси ещё со 3-й версии, а через год-другой он и этот код перепишет.
Не стоит сильно критически относиться к тому что внутри.
 

fixxxer

К.О.
Партнер клуба
Да как раз что там внутри без разницы, если работает.

Речь-то как раз о том, что торчит наружу.
 
Сверху