Ako dostat do configu parameter z prezentru?
- duskohu
- Člen | 778
Caute, neviete mi poradit? Mam takyto pripad: Mam presenter v nom mam parameter napr: layoutName ktory sa nastavuje v prezentru a tento parameter potrebujem pouzit v configu. Uvazoval som ze si urobim servisu tu injectnem do presentru a nastavim servise ten parameter a nasledne v configu si zavolam ten parameter zo servicse. Lenze to nepojde, lebo config sa vykonava skor ako by som ten parameter nastavil v presentru. Neviete mi poradit ako to riesit? Proste potrebujem dostat parameter z presentru do configu.
class FooPresenter extends BasePresenter{
/** @var MyService */
private $myService;
public function injectMyService(MyService $myService)
{
$this->myService= $myService;
}
public function startup()
{
parent::startup();
$this->myService->setLayoutName("myLayout");
}
}
class MyService extends Nette\Object{
private $layoutName;
public function setLayoutName($layoutName){
$this->layoutName = $layoutName;
}
public function getLayoutName(){
return $this->layoutName;
}
}
services:
myService : MyService
parameters:
layoutCss: @myService...zavolam getLayoutName()
- David Matějka
- Moderator | 6445
kratce: takhle to nepujde
tam, kde budes potrebovat ten parametr, tak si vyzadej jako zavislost MyService a vem si ho odtud
- duskohu
- Člen | 778
matej21 napsal(a):
kratce: takhle to nepujde
tam, kde budes potrebovat ten parametr, tak si vyzadej jako zavislost MyService a vem si ho odtud
Problem je v tom ze tu zavislost potrebujem dat do konfigu. Preco si to nevyziadam niekde kde to potrebujem? Lebo dalsej sluzbe davam na vstup nejake parametre napr zoznam css suborov a ciest k nim. neviem ta servise nechce dalsiu sluzbu, ale ten zoznam. Hmm, tak to musim nejako inak riesit.
- akadlec
- Člen | 1326
imho se snažíš jít pozpátku, tj. z presenteru zpět na začátek ke konfigu. Zkus si to promyslet jinak. Já jsem taky přemýšlel jak řešit dynamicky CSSka a JSka a šel jsem cestou vlastního CDNka.
- V presenteru si na základě podmínky nastavím šablonu.
- Při renderování si sestavím cestu k šabloně podle jejího názvu.
- Jako CSSka si dám pouze jeden link na CDNko kde předám potřebné informace
- Pro JS je to to samé.
- Stránka se načte.
- Začnou se natahovat CSSka a JSka o které se postará presenter CDNka a ten na základě parametrů a podmínek pozná co vše tam má natáhnout. Zároveň provede spojení a minifikaci a nacachování
Výhoda je že se mě to řeší vše na jednom místě (CDN modul), rychlejší zpracování JS a CSS díky jiné doméně a tudíž možnosti paralelního načítání.