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

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

echo
Člen | 134
+
0
-

Vyřešeno, použito 5 extension metod pro ActiveRow v konstruktoru NestedSet.