Size: a a a

2020 May 06

ЕР

Евгений Ромашкан... in PHP
Хотяя, psalm наверное сможет проверить одинаковые имена аргументов в таком случае 🤔
источник

VM

Volodymyr Melko in PHP
Евгений Ромашкан
Проблема в том падать оно будет в рантайме, учитывая контекст ЯП
И что с того? Если это внутренний код, от у тебя есть тесты и есть в конце концов иде, которая поможет с рефакторингом.
Если ты пишешь либу и не можешь контролировать клиентов, то семантическое версионирование в помощь.
источник

ЕР

Евгений Ромашкан... in PHP
Volodymyr Melko
И что с того? Если это внутренний код, от у тебя есть тесты и есть в конце концов иде, которая поможет с рефакторингом.
Если ты пишешь либу и не можешь контролировать клиентов, то семантическое версионирование в помощь.
Чем меньше гарантий от языка тем больше всяких штук нужно тестировать. Тесты не бесплатные
источник

VM

Volodymyr Melko in PHP
Вот юнит тесты на фоне разработки практически бесплатные
источник

ЕР

Евгений Ромашкан... in PHP
Пара мест где мне казались бы удобными именованые аргменты  - всякие инфраструктурные штуки где куча nullble-настроек, и некоторые места где 2-3 аргументы и можно было бы заинлайнить существующие переменные не потеряв читаемости
источник

ЕР

Евгений Ромашкан... in PHP
Volodymyr Melko
Вот юнит тесты на фоне разработки практически бесплатные
Ну уж нет
источник

VM

Volodymyr Melko in PHP
Ну и снова, это же очевидно. Вы не хотите, чтоб ваш код сломался при апдейте либы какой-то - не юзайте именованные аргументы. Не юзайте и не будет даже этих потенциальных проблем с bc
источник

ЕР

Евгений Ромашкан... in PHP
Их мало кто умеет писать, и их нужно поддерживать
источник

КГ

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

КГ

Константин Грачев... in PHP
PHP RFCs Civilian War, Episode n
источник

КГ

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

Р

Руслан in PHP
А откуда в read model методы changeEmail, changeUpdatedAt (void)?

https://github.com/cv65kr/messenger#read-model
источник

КГ

Константин Грачев... in PHP
хороший вопрос... автору
источник

VM

Volodymyr Melko in PHP
Константин Грачев
хороший вопрос... автору
дык это для апдейта мыла по ивенту. по факту это тупой сеттер, там нет валидации и прочего... просто обновление рид модели
источник

SM

Sergey Milegov in PHP
Почему тогда не паблик поля?
источник

VM

Volodymyr Melko in PHP
Sergey Milegov
Почему тогда не паблик поля?
потому что не ооп =))
источник

VM

Volodymyr Melko in PHP
ну вопросы конечно есть к автору
источник

АС

Альберт Степанцев... in PHP
Коллеги, что-то я туплю с утра, просветите идиота...

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

Единственный способ это так:

interface I {
 public function foo();
}

class C implements I {
 public function foo($x1 = null, $x2 = null) {}
}


то есть делать в реализации все аргументы опциональными?
ну или заморачиваться с ... оператором

вопрос "нахрена это нужно" прошу опустить
источник

ЕР

Евгений Ромашкан... in PHP
Альберт Степанцев
Коллеги, что-то я туплю с утра, просветите идиота...

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

Единственный способ это так:

interface I {
 public function foo();
}

class C implements I {
 public function foo($x1 = null, $x2 = null) {}
}


то есть делать в реализации все аргументы опциональными?
ну или заморачиваться с ... оператором

вопрос "нахрена это нужно" прошу опустить
Конечно, ты контракт сломал. Нельзя же будет через интерфейс вызвать метод foo() без аргументов, если они в наследнике обязательные
источник

АС

Альберт Степанцев... in PHP
началось ))
источник