Konstantin
Хотя с DI тоже могут быть варианты, если его криво использовать
who are you
не думалось не гадалось что конструктор подводный камень таит в себе 😄
invariance
просто потрясающая
invariance
хорошие предпосылки для говнокода, солидарен
Anonymous
Постоянно вижу что кто-то печатает, но сообщений новых нет. Это баг или просто никто с ночи ничего не писал?
who are you
Konstantin
Вы понимаете, что ребенок - это наследник, который расширяет, либо меняет поведение родителя? Он должен стараться максимально наследовать поведение родителя, кроме случаев, когда разработчик осознанно меняет поведение. Если кто-то в ребенке меняет поведение конструктора (а не расширяет его) - это уже провал.
Konstantin
Не надо путать наследование от класса и имплементацию интерфейса
SarcasmIO
who are you
Sergey
Konstantin
в PHP не имеет - в том и проблема xD
Konstantin
но есть еще много интересных языков
Konstantin
например, C++
Evgeniy
например java тоже имеет перегрузку методов и что дальше?
Evgeniy
это все равно отношения к пхп не имеет
Evgeniy
можно сказать что ооп в пхп слишком урезано так как нет множественного наследования
Evgeniy
которое есть в C++
Evgeniy
и сказать что java тоже сильно урезано
Evgeniy
там этого тоже нет
Evgeniy
но будет ли это объективно?
Evgeniy
врятли
Evgeniy
Evgeniy
я к слову сказал
Evgeniy
и трейты не наследование а замена копипасты
Evgeniy
я не понимаю что за 3+ уровней
invariance
мб поспорим?
invariance
ты проиграешь
Konstantin
Параметрический - это разновидность ad-hoc
Konstantin
Хотя неа - вру )
Konstantin
Параметрический и ad-hoc разные )
Evgeniy
ой срачи про наследование
Konstantin
Я не про наследование в N+ уровней, а про ситуации когда нужно множественное наследование
Evgeniy
про полиморфизм и тд)
Evgeniy
Evgeniy
почему люди ограничены лишь наследованием и не пользуются композицией и агрегацией?
invariance
я не проиграл, он подразумевал ad hoc полиморфизм
invariance
я месяц назад где то сам говорил, что его в пхп не хватает
invariance
это было бы слишком сильно
invariance
не, не сделают
invariance
на костылях пошла
Evgeniy
так делайте проверку типо по интерфейсам
invariance
на пиздец каких костылях
invariance
они просто взяли is_%typename% и запихнули в аргументы функции
invariance
вот и весь тайпхинтинг
invariance
какие пруфы? Это очевидно, блять
invariance
бля, мне ща некогда спорить, если хочешь - сам загугли как работает типизация в пыхе
Echo
ребята, зачем полиморфизм?
Я не понимаю как его юзать.
Для чего?
Нужно пояснение, гуглы хабры хабры я уже читал.
Сколько пишу, не юазю полимфоризм. Наверное потому что не пригодился или потому что я не знаю как его юзать
Evgeniy
Evgeniy
и тут либо у тебя задачи где полиморфизм не нужен
Evgeniy
или ты просто пишешь хуйню на костылях
Echo
кек
Echo
нет, не пишу хуйню на костылях.
Evgeniy
ну значит таски где полиморфизм не нужен
Evgeniy
но классический полиморфизм на интерфейсах
Evgeniy
это когда пользователю надо слать notification
Echo
то есть, описание интерфейсов и последующая реализация этих интерфейсов - это и есть полиморфизм?
Evgeniy
а способ связи с пользователем несколько(email, telegram, push и тд)
Evgeniy
Evgeniy
создание интерфейса и использование интерфейса вместо конкретной реализации
Evgeniy
это есть полиморфизм
Echo
какие задачи полиморфизма?
Evgeniy
у тебя есть место где надо послать уведомление пользователю
Evgeniy
но каким способом слать, у каждого пользователя по разному
Evgeniy
у тебя есть интерфейс и типо текст уведомления в метод пошлешь
Evgeniy
реализация сама нужным способом ее отправит
Echo
то есть код по сути будет один и тот-же?
Evgeniy
которые можно решить полиморфизмом
Evgeniy
Evgeniy
в одном случае используется smtp
Echo
или допустим. Есть интерфейс
Evgeniy
в другом api телеграмма
Echo
вот дай 2 минуты)