->set*() and ->get*()
->set*() and ->get*() -- オーバーロードを用いた自動的な set系・get系メソッド
概要
true | string $DB_DataObject->set* (mixed $value)
mixed $DB_DataObject->get* ()
説明
PHP 4.3.2RC2 以降、DB_DataObject は自動的にオーバーロードされ、
あなたがメソッドを定義していなくても
$object->set{ColumnName}() や $object->set{ColumnName}($value)
を使用して全ての変数にアクセスできます。
set メソッドはエラーの場合文字列を返し、さもなければ TRUE を返します。
これにより、setFrom メソッドと連携し、
エラー文字列の配列を返すことができます。
get メソッドは toArray() メソッドで使用されます。
もし定義されていれば、
人が読める日付の作成のようにカラムの表示を変更することができます。
ロジックは非常にシンプルです。もし $object->setXXX() がコールされ、
かつ定義されていない場合、単純に値を設定します。
もし setXXXX メソッドが定義されていれば、デフォルトハンドラの代わりに
コールされます。同じ事が getXXX() メソッドについても適用されます。
カラム名が from である場合に名前衝突の可能性があるので、
カラム 'from' に関連するメソッドは setFrom() ではなく
set_from になります。
返り値
mixed - set系メソッドは、デフォルトメソッドや独自実装からは TRUE 。値が不正な場合、setXXX($value) メソッドは文字列
(エラー) を返し、成功の場合 TRUE。
getXXX メソッドは、値あるいは整形された値を返す。
このメソッドは $object->toArray() に影響することを忘れないように。
注意
この関数は、スタティックにコールする
ことはできません。
注意: このメソッドは実験的なものです。この動作は将来変更されるかも知れません。
例
例 33-1オブジェクト変数に基づくシンプルな検索とデータのフェッチ
<?php
class DataObjects_Person extends DB_DataObject {
var $id;
var $name;
var $date_of_birth;
// you can define this method after you implement a call to it!
// as it is automatically implemented to return $this->date_of_birth by
// the overload __call() method.
function getDate_of_Birth() {
return date('d M Y', strtotime($this->date_of_birth));
}
}
$person = new DataObjects_Person;
$person->get(12);
// now lets use the getters and setters even though some are not defined.
echo $person->getName() . ' was born on ' . $person->getDate_of_Birth();
?>
|
|
例 33-2結果の出力 Fred Blogs was born on 1 April 1970 |
|