Size: a a a

2021 April 10

А

Антон in PHP
Не одинаковые
источник

AP

Andrey Polyakov in PHP
Аргументируйте
источник

А

Антон in PHP
Ты аргументируй, твоя идея
источник

AP

Andrey Polyakov in PHP
Ну например вывод приватный свойств
источник

А

Антон in PHP

/** @psalm-immutable */
final class Phone
{
     public string $value;

     public function __construct(string $value)
     {
          if (!preg_match(..., $value)) {
               throw new BadPhoneFormatException();
          }
         
          $this->value = $value;
     }
}


Вот и весь VO. Зачем тут дефолт?
источник

А

Антон in PHP
Это еще зачем? Зачем вывод приватных св-в и зачем приватные св-ва?
источник

AP

Andrey Polyakov in PHP
Так свойство должно быть приватным.
источник

А

Антон in PHP
Кто сказал?
источник

AD

Alexander Deider in PHP
Для read only VO, например)
источник

AP

Andrey Polyakov in PHP
Так оно не гарантирует целостность.
источник

А

Антон in PHP
Статические анализаторы. Ну хочешь – добавь геттер. Как это оправдывает наличие дефолта? Если есть дефолт, то ты его можешь передавать везде, где ждут VO, а это неправильно, потому что ты ждешь конкретный VO, а не дефолтный. А просто эксендетиться из-за наличия методов - тупость.
источник

А

Антон in PHP
Какую целостность?
источник

AP

Andrey Polyakov in PHP
Я могу поменять значение свойства
источник

AD

Alexander Deider in PHP
Там Никита обещал нормальные проперти недавно)
Сделает - будет огонь)
источник

А

Антон in PHP
Ну тогда ты идиот.
источник

BY

Borys Yermokhin in PHP
мы юзаем для ValueObject константы чтобы избежать прямого изменения. Константы публичные. Все ValueObject наследуются от абстрактного класса который собственно и реализует функционал. Дочерние классы только определяют набор значений который могут принимать
источник

А

Антон in PHP
Как ты для телефона, мыла, uuid константы определишь?
источник

AP

Andrey Polyakov in PHP
Вот что я и имею в виду
источник

AD

Alexander Deider in PHP
Это только для ограниченных множеств значений возможно
источник

BY

Borys Yermokhin in PHP
а зачем тебе для этого ValueObject?
источник