presenter → Form a DI how to
- David Ďurika
- Člen | 328
Zdravim,
ked si v prezentry vytvorim tovarnicku na Form a v tom formulary budem mat
nieco ako:
<?php
//$items = $this->presenter->context-> // toto porusuje DI
$this->addSelect('select', 'Select', $items);
?>
odkial mam zobrat tie $items?
dakujem.
- Jan Tvrdík
- Nette guru | 2595
Předávej závislosti do kostruktoru formuláře resp. továrničky na formulář.
- David Ďurika
- Člen | 328
- a co ak tych zavislosti mam viac? (myslim naozaj vela)
- a co ak mam v roznych situaciach ine zavislosti?
- ako mam dostat zavislosti to metody kt. spracovava odoslane udaje ?
- Filip Procházka
- Moderator | 4668
achtan napsal(a):
- a co ak tych zavislosti mam viac? (myslim naozaj vela)
5 je ještě únosné, cokoliv více je chyba návrhu.
Služby se dají skládat do sebe. Místo tří služeb vytvoř novou třídu, které je obalí a bude mít část logiky v sobě. Takto v konečném důsledku můžeš logiku rozčlenit a roztřídit a poskládat do sebe jako lego. Vznikne ti pak z toho krásný graf závislostí.
- a co ak mam v roznych situaciach ine zavislosti?
To je při dobrém návrhu nepravděpodobné. Ale pokud ano, tak bys neměl mít jednu třídu, která má různé závislosti podle nějaké podmínky, ale dvě různé třídy, kde každá bude vyžadovat pouze co potřebuje a na základě nějaké rozhodovací logiky vytvářet buď jednu nebo druhou. Od toho jsou taky interfacy.
- ako mam dostat zavislosti to metody kt. spracovava odoslane udaje ?
Předáš si je konstruktore, nebo inject metodou a pak je v ní použiješ.