Přepsání konstruktoru za běhu
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- echo
- Člen | 134
Zdravím,
vytvářím nadstavbu nad Database\Table\Selection za účelem implementace
NestedSet principu. Vypadá to následovně:
$db->table("nestedset")->nestedSet()->insertAsLastChild($target_id, array $data);
Metodu nestedSet přidávám za běhu (extensionMethod) v bootstrapu, má za úkol instancovat Database\Table\NestedSet, který dědí od Selection.
Když se ale po nějakém požadavku (foreach v šabloně, insert, …) vrátí ActiveRow, nejsou k dispozici další metody, které by se hodily (countChildren, isParentOf, …).
Potřeboval bych najít způsob, jak při volání new ActiveRow ze Selection vrátit NestedSetRow (dědila by od ActiveRow).
Napadá mě „přepsat“ celou třídu Selection, nebo za běhu upravit konstuktor ActiveRow, aby vracel mou třídu.
Díky za nápady