Logo
    Contact
    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

    本日のネタ3

    おわり

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

    Logo

    ©tyamahori(ちゃまほり)

    FacebookGitHubLinkedInX
    <?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
    );
    <?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
    );