Kód s reflexí z článku „Model: Entity-Repository-Mapper“
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- MikeLacroix
- Člen | 60
Zdravím,
vysvětlil by mi někdo, proč se tady užívá reflexe? Přijde mi to, že je tam jen pro případ, že by id bylo definováno jako soukromé.
<?php
private function load($data)
{
$item = new ShoppingCartItem;
$this->setIdentity($item, $data->id);
unset($data['id']);
foreach ($data as $prop => $val) {
$item->$prop = $val;
}
return $item;
}
private function setIdentity($item, $id)
{
$ref = Nette\Reflection\ClassReflection($item);
$idProp = $ref->getProperty('id');
$idProp->setAccessible(TRUE);
$idProp->setValue($item, $id);
return $item;
}
?>
(celý kód zde: https://pla.nette.org/…itory-mapper)