私は PHP の OOP パラダイム全体にかなり慣れていませんが、今のところとても気に入っています。現在、EventSender クラスを作成しています。このクラスは、いくつかの情報を収集してから、イベントを EventHandler に送信し、イベントをイベントログに書き込みます。
「起動」の部分に来たとき、宣言されたすべての変数が設定されていることを検証するための簡単なソリューションが本当に欲しいと思いました。そうする簡単な方法はありますか、それともPHPの組み込み関数でさえありますか?
また、以下に貼り付けたコードは、これまでの私のクラスの実際のコードなので、他に意見がある場合は、自由に考えを詳しく述べてください:-)
class Event extends Base {
private $eventKey;
private $userID;
private $value;
private function __construct($eventKey){
$sql = Dbc::getInstance();
//Set and escape the EVENT_KEY.
$this->eventKey = $sql->real_escape_string($eventKey);
$sql->select_db('my_event_db');
$result = $sql->query('SELECT idx FROM event_types WHERE event_key = $this->$eventKey');
//Verify that the event key given is correct and usable.
//If failed throw exception and die.
if($result->num_rows != 1){
$err = 'ERROR: Illegal EVENT_KEY sent.';
throw new Exception($err);
}
}
public function setUserID($userID) {
$this->userID = $userID;
if(is_numeric($this->userID) != TRUE){
$err = 'ERROR: Value passed as userID is not numeric.';
throw new Exception($err);
}
}
public function setValue($value) {
$this->value = $value;
//The isJson function comes from a Trait that my Base class uses.
//The method will also throw a exception if it doesn't pass the test.
self::isJson($this->value);
}
public function fire () {
/* Here I want some code that swiftly checks if all declared vars have been set, which makes my method "ready to fire".. */
}
よろしく、 アンドレ V.