Tvorba komponent s využitím autowiringu
- Climber007
- Člen | 105
Ahoj,
překopávám aplikaci a začleňuji do ní komponenty s automatickým
předáváním závoslostí. To používám přesně podle návodu už
dlouhou dobu. Bohužel na tomto projektu se mi do komponenty předává něco,
o co jsem se nikde nežádal (a Nette snad taky ne).
Mám komponentu přihlašovacího formuláře signInControl
.
Všechno dělám standardně, ale Nette ji do konstruktoru nevkládá správný
presenter, ale presenter, který je konfigurován v config.neon
takto :
services:
InstallPresenter:
class: App\FrontModule\Presenters\InstallPresenter
setup:
- setPathes(%tempDir%, %wwwDir%)
Čím je to prosím nejspíše způsobeno?
- David Kudera
- Člen | 455
Úplně si nemyslím, že by se komponentám měl předávat presenter. Pokud
je ale presenter potřeba, tak by se měla využít metoda
attached
. Když už ale potřebuji někde nutně injectnout
presenter, tak se injectne celá application
a z ní potom
vytáhnu presenter
- David Matějka
- Moderator | 6445
mas v te komponente vlastni konstruktor? jinak v masteru by to melo byt opravene
- Climber007
- Člen | 105
Konstruktor v ní nemám, nic ji nepředávám. je to jen přihlašovací
formulář – $user
si bere z presenteru, víc není potřeba.
Zkusím master, zatím jedu na Nette 2.2.2.
- David Matějka
- Moderator | 6445
staci pridat prazdny konstruktor
public function __construct()
{
parent::__construct();
}
- David Kudera
- Člen | 455
jde právě o to, že konstruktor parenta očekává presenter a nette ho zkousí injectnout