Size: a a a

2019 December 27

YH

Yura Haiduchyk in PHP
если не хуже..)
источник

SM

Sergey Milegov in PHP
В этот раз мы все сделаем правильно 😁
источник

AS

Anton Shabouta in PHP
источник

SP

Sergey Protko in PHP
есть же у Марко такая же не?
источник

SP

Sergey Protko in PHP
источник

SP

Sergey Protko in PHP
> TL;DR: Make your classes always final, if they implement an interface, and no other public methods are defined
источник

SS

Serge Shpak in PHP
все так делают?
источник

SP

Sergey Protko in PHP
я иногда ленюсь но в целом можно автоматизировать через какой php-cs-fixer :)
источник

КГ

Константин Грачев in PHP
У меня шаблон в phpstorm нового класса имеет final )
источник

КГ

Константин Грачев in PHP
Sergey Protko
> TL;DR: Make your classes always final, if they implement an interface, and no other public methods are defined
only if implement interface?
источник

SP

Sergey Protko in PHP
да, final класс без интерфейса нельзя замокать
источник

SP

Sergey Protko in PHP
а если есть интерфейс то ты на него код завязываешь а не на класс)
источник

КГ

Константин Грачев in PHP
🤔
источник

SP

Sergey Protko in PHP
ну то есть все довольно просто - ПО УМОЛЧАНИЮ ты должен делать final классы которые ты можешь заменить на другую реализацию (за счет интерфейсов).

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

КГ

Константин Грачев in PHP
У меня такой вопрос. А на сколько часто вообще требуется инстанцировать класс с моками для его теста?
Why not $container->get где всякие вызовы во внешние сервисы уже замоканы на уровне test контейнера?
источник

AS

Anton Shabouta in PHP
Вцелом, все что не подразумевает множественных реализаций вправе быть final
источник

AS

Anton Shabouta in PHP
Даже должно
источник

SP

Sergey Protko in PHP
Anton Shabouta
Вцелом, все что не подразумевает множественных реализаций вправе быть final
наоборот
источник

SP

Sergey Protko in PHP
если есть интерфейс и класс этот интерфейс не расширяет - то этот класс одна конкретная реализация и она должна быть final
источник

SP

Sergey Protko in PHP
если класс расширяет интерфейс, если интерфейса нет и других реализаций не планируется - то тут it depends а не "должно"
источник