-
Notifications
You must be signed in to change notification settings - Fork 2
CS: Výchozí hodnoty v entitě
vojtech-dobes edited this page Mar 14, 2012
·
2 revisions
Výchozí hodnoty entity lze definovat dvěma způsoby:
- Anotací (pouze skalární hodnoty)
/**
* @property $foo {default abc}
*/
- Metodou s předepsaným názvem
getDefault<Property>
protected function getDefaultFoo()
{
return array();
}
Platí, že anotace má před metodou přednost - tj. pokud je v definici property uvedeno {default ...}
, metoda nikdy nebude zavolána.
Výchozí hodnotou může být cokoliv, co lze předat setteru odpovídající property. Například property typu DateTime
přijímá jakoukoliv platnou řetězcovou hodnotu ($this->registered = 'now';
), a proto i výchozí hodnota může být zadána v anotaci:
/**
* @property DateTime $registered {default now}
*/
Do anotací lze uvést skalární hodnoty a konstanty (globální i třídní):
/**
* @property $foo {default abc} řetězec
* @property $foo {default "abc"} řetězec v uvozovkách
* @property $foo {default 123.52} číslo
* @property $foo {default TRUE} globální konstanta
* @property $foo {default self::FOO} třídní konstanta
*/
Pomocí zvláštní konstanty DEFAULT_VALUE
lze property zresetovat a vynutit doplnění výchozí hodnoty bez ohledu na současnou hodnotu.
$e->foo = Orm\IEntity::DEFAULT_VALUE;
Pokud výchozí hodnota není definovaná, je hodnota property se rovná NULL
.