モンスターカレンダー

« 2004年9月 »
123456789101112131415161718192021222324252627282930

2004年9月 8日アーカイブ

DB_DataObject.phpを見てみました。


function factory($table) {

//略
if (!$class) {
return DB_DataObject::raiseError(
"factory could not find class $class from $table",
DB_DATAOBJECT_ERROR_INVALIDCONFIG);
}
}

で、「DB_DataObject」のraiseErrorを呼び出していました。


function raiseError($message, $type = null, $behaviour = null)
{
global $_DB_DATAOBJECT;

if ($behaviour == PEAR_ERROR_DIE && @$_DB_DATAOBJECT['CONFIG']['dont_die']) {
$behaviour = null;
}

if (PEAR::isError($message)) {
$error = $message;
} else {
$error = PEAR::raiseError($message, $type, $behaviour);
}
// this will never work totally with PHP's object model.
// as this is passed on static calls (like staticGet in our case)

if (@is_object($this) && is_subclass_of($this,'db_dataobject')) {
$this->_lastError = $error;
}

$_DB_DATAOBJECT[
'LASTERROR'] = $error;

// no checks for production here?.......
DB_DataObject::debug($message,"ERROR",1);
return $error;
}

エラーの場合は、lastErrorにセットすると同時にたしかに PEAR::raiseError でreturnはちゃんとPEAR::Errorになってますね。
factoryはreturnで拾えるということですね。

しかし、他のメソッドは
...なんでもいいんですが、エラー時にはDB_DataObject::raiseErrorしてもそれはreturnしていないです。
return値はTrue/False。
内容を見るにはやはり _lastErrorを取得する必要がありますね。。

#なんでfactoryと同じようにPEAR::Errorを返してくれないんだろう。
#そして_lastErrorを取得するメソッドがないのは。。。?? _lastError使っていいんですね??

*** version : 1.5.3 ***