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
+
0
-

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)

MikeLacroix
Člen | 60
+
0
-

Dík!