Dedenie z generovanej komponenty

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Čamo
Člen | 798
+
0
-

Zdravím,
vedel by mi niekto pradiť ako by sa dala podediť componenta, ktorá je generovaná cez interface. Potrebujem prepísať metódu v jednej komponente, ktorá sa do aplikácie registruje automaticky ako extension.
Táto komponenta sa generuje takto:

interface IFormRendererComponentFactory {

	/** @return FormRendererComponent */
	function create();
}

class FormRendererComponent extends Control {}

A ja by som potreboval podediť túto triedu, čo nieje problém. Ale potrebujem aby implementovala ten svoj interface, kôli type hintu v iných metódach z toho balíčka. Keď to totiž urobím takto:

interface IMyFormRendererComponentFactory {

	/** @return MyFormRendererComponent */
	function create();
}

class MyFormRendererComponent extends FormRendererComponent {}

tak to začne padať, pretože MyFormRenderer does not implement IFormRendererComponentFactory… Dá sa toto nejako vyriešiť? Dúfam, že ano…

Editoval Čamo (4. 8. 2017 16:19)

CZechBoY
Člen | 3608
+
0
-

No tys ale neudělal factory…
Udělej factory (interface) a tu třídu poděděnou.

interface IMyFormRendererComponentFactory extends IFormRendererComponentFactory
{
    /** *@return FormRendererComponent */
    function create();
}

tu uveď v tom konfiguráku

Editoval CZechBoY (5. 8. 2017 16:37)

Čamo
Člen | 798
+
0
-

A sakra, nevedel som, že interface môže tiež detiť. Medzi tým som to vyrenderoval ručne.
Díky za pomoc.