Когда я добавляю методы к различным классам DB_DataObject, я склоняюсь к
Class Example extends DB_DataObject {
function methodx() //start fresh
{
$newObject = DB_DataObject::factory($this->__table);
/* do stuff with $newObject */
}
вместо
function methodx() //use current instance
{
/* do stuff with $this */
}
Я понял, что делаю это, потому что не знаю, как определить состояние $ this. Код вызова мог выполнить любое из следующих действий:
$e = DB_DataObject::factory('Example'); $e->get(16); $e->methodx();
$e = DB_DataObject::factory('Example'); $e->somekey=$value; $e->methodx();
$e = DB_DataObject::factory('Example'); $e->somekey=$value; $e->find(); $e->methodx();
Как я могу определить состояние "$ this", когда я получаю его?
Существуют ли практические правила или дизайн для использования текущего экземпляра и создания нового экземпляра класса?