Представьте, что у меня есть таблица с именем "item", в которой есть столбец с именем "price". В дополнение к полной цене, я хотел бы получить разброс цен по 12 месяцам, то есть
class Item extends Doctrine_Record {
...
public function getMonthlyPrice() {
return $this->price/12;
}
}
Теперь, скажем, я бы хотел, чтобы Item действовал так, будто месячная цена - это просто другой столбец, а не вызов функции, например,
$m = Doctrine_Core::getTable("Item")->find(1);
echo $m->price; //prints 120
echo $m->monthlyPrice; //prints 10
Мой первый инстинкт - переопределить метод __get (). Есть ли лучший или более стандартный способ сделать это в Доктрине?
Бонусный вопрос:
Есть ли какой-нибудь очень умный способ, которым я могу настроить объект, поэтому, когда я делаю
var_dump($m->getData())
Понятно
array
'price' => 120
'monthlyPrice' => 10
Это было бы довольно изящно.