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年生
本日の参考キーワード
- アンパック
- スプレッド演算子
本日のネタ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
);
おわり
ご静聴ありがとうございました。