この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:1
ページ更新者:guest
更新日時:2017-08-12 12:08:28

タイトル: カプセル化の具体例

ここではPHPのカプセル化の具体例を記載する。
カプセル化で使用するデータ格納用のクラスを以下、DTO(Data Transfer Object)と呼称する。

【DTOクラス】

class TestDto {
    
    //プロパティを定義
    //値の出し入れはgetter, setterメソッドを経由させるのでプロパティの修飾子はprivate
    private $prop1;
    
    //コンストラクタ
    //インスタンス化時に設定したい値を定義する
    function __construct() {
        $this->prop1 = 'AAA';
    }

    //プロパティから値を取得するゲッターメソッド
    function getProp1() {
        return $this->prop1;
    }

    //プロパティに値を設定するセッターメソッド
    function setProp1($prop1) {
        $this->prop1 = $prop1;
    }

}

 

【DTOを使用する処理】

<html>
    <body>
        <?php
        require_once 'TestDto.php';
        
        //DTOクラスをインスタンス化
        $testDto = new TestDto();
        
        //コンストラクタで設定されたデフォルト値を取得する
        print 'コンストラクタで設定された値';
        print "</br>";

        print 'Prop1 = '; 
        print $testDto->getProp1();
        print "</br></br>";
        
        //値を変更する
        $testDto->setProp1('BBB');
        
        //値が変更されたことを確認する
        print '設定し直した値';
        print "</br>";

        print 'Prop1 = '; 
        print $testDto->getProp1();
        print "</br>";
        
        ?>
    </body>
</html>

 

【処理結果】
    コンストラクタで設定された値
    Prop1 = AAA
    
    設定し直した値
    Prop1 = BBB