PHPのDTOテクニック

PHPのDTOテクニック

Created
Jul 26, 2022 2:15 PM
Tags

PHPのDTO生成チップス

@PHPer Tea Night★第一夜

by tyamahori

お前誰よ?

  • tyamahori (ちゃまほり)って言います
  • https://twitter.com/tyamahori ← フォローしてね!
  • PhpStorm Love
  • Laravelメイン
  • APIとか作ってます
  • Webエンジニア6年生
image

本日の参考キーワード

  • アンパック
  • スプレッド演算子

本日のネタ1

<?php

class Dto
{
    public function __construct(
        public readonly string $name,
        public readonly int $age,
        public readonly string $favoriteProgrammingLanguage
    ) {
    }
}


$sample1 = new Dto('tyamahori', 32, 'PHP');
var_dump(
    $sample1->name, 
    $sample1->age,
    $sample1->favoriteProgrammingLanguage
);

本日のネタ2

<?php

class Dto
{
    public function __construct(
        public readonly string $name,
        public readonly int $age,
        public readonly string $favoriteProgrammingLanguage
    ) {
    }
}

$arrayParams = [
    'name' => 'tyamahori',
    'age' => 32,
    'favoriteProgrammingLanguage' => 'PHP',
];
$sample2 = new Dto(...$arrayParams);
var_dump(
    $sample2->name,
    $sample2->age,
    $sample2->favoriteProgrammingLanguage
);

本日のネタ3

<?php

class Dto
{
    public function __construct(
        public readonly string $name,
        public readonly int $age,
        public readonly string $favoriteProgrammingLanguage
    ) {
    }
}

$stdClass = new stdClass();
$stdClass->name = 'tyamahori';
$stdClass->age = 32;
$stdClass->favoriteProgrammingLanguage = 'PHP';
$sample3 = new Dto(...(array) $stdClass);

var_dump(
    $sample3->name,
    $sample3->age, 
    $sample3->favoriteProgrammingLanguage
);

おわり

ご静聴ありがとうございました。