どうも、くずき(@kzkohashi)です。 今回はDDDにおける、バリューオブジェクトをLaravelでどう表現するかについて書きたいと思います。 なぜバリューオブジェクト? DDDを学んでいる中で、実際にどうやったら実装に落とし込めるだろうか?って考えたときに、一番最小構成であるバリューオブジェクトから手をつけたほうがいいんじゃないかという話になった。 (もちろんユビキタス言語などを見つけてからの前提) 実装 Eloquentから返却される値をすべてバリューオブジェクトにしてたら、時間も手間もかかってしまうので、一部ずつ変えていく。 今回はUserの1カラムであるEmailを例に変更してみる。 バリューオブジェクトの生成 <?php class Email implements \JsonSerializable { /** * @var string */ protected $va
![Laravelでバリューオブジェクトのみを実装する - いっきのblog](https://cdn-ak-scissors.b.st-hatena.com/image/square/f8004be75a2046e9b216f60ce31df3d6fd47b75c/height=288;version=1;width=512/http%3A%2F%2Fgahag.net%2Fimg%2F201606%2F19s%2Fgahag-0098073571-1.jpg)