Size: a a a

2020 June 04

РR

Роман Romanov in PHP
либу в докере описывают, которые нужны
источник

РR

Роман Romanov in PHP
apt-install ext-spltype итд
источник

SM

Sasha Mikhlyaev in PHP
они у вас composer i не умеют вызвать в консоли?
источник

РR

Роман Romanov in PHP
не
источник

SM

Sasha Mikhlyaev in PHP
можно и без spl. спл в целом кривой енам
источник

РR

Роман Romanov in PHP
хих
источник

DE

Dmitry Eliseev in PHP
К этому от @vudaltsov:

1. Как сказано, если принципиально отказаться от наследования своего кода, то final становятся малополезен. И только добавляет неудобств с прокси в Doctrine и со стабами в тестах.

2. Как тоже было сказано, пока нет доменных событий геттеры – единственный способ протестировать корректную работу сущности. Для чтения вне тестов эти геттеры не используются.

3. Разбивать одну мелкую сущность на семь по одному полю в каждой без особой цели – другая крайность. Если поля взаимосвязаны, то польза от этого сомнительна. Только лишний оверхед.
источник

SB

Sergei Baikin in PHP
Dmitry Eliseev
К этому от @vudaltsov:

1. Как сказано, если принципиально отказаться от наследования своего кода, то final становятся малополезен. И только добавляет неудобств с прокси в Doctrine и со стабами в тестах.

2. Как тоже было сказано, пока нет доменных событий геттеры – единственный способ протестировать корректную работу сущности. Для чтения вне тестов эти геттеры не используются.

3. Разбивать одну мелкую сущность на семь по одному полю в каждой без особой цели – другая крайность. Если поля взаимосвязаны, то польза от этого сомнительна. Только лишний оверхед.
1 а ка контролировать чтобы прогеры придерживались этого?
Финал отоичный способ контроля
2 но зачем ради тестов в тестах можно и рефлексию или bind и вуаля не надо гетеры писать и код засорять
3 так если они взаимосвзяаны то как вы хотите из разбить
А елси нет то почему им вместе лежать?
А может если у вас можно разбить все поля по одному и это значит что и логики у вас нет
Тогда проще просто CRUD пишем в базу достаем и нет ни классов ни полей
источник

DE

Dmitry Eliseev in PHP
Sergei Baikin
1 а ка контролировать чтобы прогеры придерживались этого?
Финал отоичный способ контроля
2 но зачем ради тестов в тестах можно и рефлексию или bind и вуаля не надо гетеры писать и код засорять
3 так если они взаимосвзяаны то как вы хотите из разбить
А елси нет то почему им вместе лежать?
А может если у вас можно разбить все поля по одному и это значит что и логики у вас нет
Тогда проще просто CRUD пишем в базу достаем и нет ни классов ни полей
1. Один раз рассказать про композицию вместо наследования. Если же прижмёт, то тогда и final можно добавить. Фреймворки и библиотеки final-ами не напичканы, но это много проблем не приносит.

2. Ну ещё, кстати, можно посоветовать через preg_match текст serialize($obj) парсить. Рефлексия – ещё больший костыль, чем геттеры, так как сильнее завязан на внутренности и не ловится стат-анализом.

3. Где это "я хочу разбить"? Это вам не понравились 7 полей в одной сущности, а не мне. И вы предложили password и email разнести. А я пишу, что у меня они там как раз взаимосвязаны все эти поля.
источник

BT

Bohdan Turchyk in PHP
Dmitry Eliseev
К этому от @vudaltsov:

1. Как сказано, если принципиально отказаться от наследования своего кода, то final становятся малополезен. И только добавляет неудобств с прокси в Doctrine и со стабами в тестах.

2. Как тоже было сказано, пока нет доменных событий геттеры – единственный способ протестировать корректную работу сущности. Для чтения вне тестов эти геттеры не используются.

3. Разбивать одну мелкую сущность на семь по одному полю в каждой без особой цели – другая крайность. Если поля взаимосвязаны, то польза от этого сомнительна. Только лишний оверхед.
1. это скорее защита от дурака/говнокодера
я сталкивался с любителями наследовать
сам final пишу редко, потому особо спорить не буду
2. проблема в том, что нет никакой возможности ограничить использование геттеров тестами
3. Валентин вроде не говорил про разбить юзера на 7 сущностей - это можно сделать разумнее
аппеляция к крайности - такой себе аргумент
источник

MM

Maksim Masiukevich in PHP
final сам не пишу, ide пишет)
источник

MM

Maksim Masiukevich in PHP
всюду, где есть class (кроме сущностей доктриновских)
источник

M

Maestro in PHP
а в тестах если мок нужен, как тогда ?
источник

MM

Maksim Masiukevich in PHP
интерфейсы нормальные писать
источник

M

Maestro in PHP
Максим я правильно понимаю что у тебя получается на каждый такой класс где финал, есть интерфейс? Я просто когда то пытался разобраться в этой теме, но чот мне показалось оверхедом писать кругом интерфейсы)
источник

MM

Maksim Masiukevich in PHP
не в каждом, только в "ключевых"
источник

M

Maestro in PHP
а как тестировать юнитами не ключевые?
источник

BT

Bohdan Turchyk in PHP
Maestro
а как тестировать юнитами не ключевые?
а надо тестировать все классы?)
источник

MM

Maksim Masiukevich in PHP
тестируй публичные вещи, зачем тебе тестировать всё вокруг?
источник

Р

Руслан in PHP
Maestro
а как тестировать юнитами не ключевые?
Ты не будешь тестировать, если у тебя нет тестов)))
источник