uestla/YetORM — pull request #2 by Tharos (2013-03-31 19:19:36+00:00)
Title: Přidána in-memory cache pro reflexe tříd entit

V současné době se u entit při každém použití magické metody **__get** nebo **__set** vytváří nová reflexe entity. Jelikož je tato akce v PHP poměrně drahá, je výhodné vytvořené reflexe recyklovat (tím více, čím mají entity více položek).

Late static binding v PHP funguje pouze pro proměnné a metody v odvozené třídě nově definované (hezky je to vysvětlené například zde: http://stackoverflow.com/questions/6000385/why-doesnt-late-static-binding-work-with-variables-in-php-5-3?answertab=votes#tab-top). Proto se v implementaci udržuje na jednom místě celá kolekce získaných reflexí – nestačí jen jejich uchovávání ve static::$reflection.

Změna předpokládá, že se struktura entity nebude během životního cyklu aplikace nějakou černou magií měnit. To IMHO nevadí – nedokážu si představit, kdy by se dělání něčeho takového mohlo hodit…

Testy jsem spouštěl a prochází. :)