リクエスト変数を、アクションクラスのフィールドやリクエストクラスのメソッドで取得するメリット
値のチェックをまとめられるとか、構造がまともになるとか色々あるけれど、さっき実感したのはコレ。
- E_NOTICEがでない。
普通に
<?php ... $name = $_GET['name'];
とやるとさ、入力チェックが必要だよね。
<?php ... if (isset($_GET['name'])) $name = $_GET['name']; else $name = null;
みたいな。
これが増えると
<?php /* 意味的にやりたいこと $firstName = $_GET['firstName']; $lastName = $_GET['lastName']; */ /* 実装するコード */ if (isset($_GET['firstName'])) $firstName = $_GET['firstName']; else $firstName = null; if (isset($_GET['lastName'])) $lastName = $_GET['lastName']; else $lastName = null;
すこぶる大変。
これに is_string() とか strlen() とか加えたら、たった二つの変数を確保するだけでもやたらめんどくさい。
なので、アクションクラスのフィールドやリクエストクラスのメソッドで値を取ってくるのは想像以上の効果があるなぁと思った。
フォームにinputタグがあるからと言って、必ずしも値が送られてくるとは限らないからね。フォーム入力後のURLを直接入力されたときとか。
というようなことを $ua = $_SERVER['HTTP_USER_AGENT'] とかべた書きしたときに、uaが無いリクエストは配列自体が設定されないことに気付いて実感した。