Nacitanie parametrov pre dibi z config.neon pre presenter
- tomdawayhet
- Člen | 20
Zdravim Vas,
Pouzivam Davidov skript MySQLDump na automaticke zalohovanie databazy a metodu ktora to robi volam z BaseModelu v BasePresenteri kde odovzdavam metode parametre asi takto:
$this->baseModel->backupDb(‚localhost‘, ‚root‘, ‚***‘, ‚nette‘, ‚Y-m-d H-i‘);
Viem ze to nieje najcistejsie riesenie a chcel by som to znacne skratit na
nieco ako:
$dbParams = (nacitanie premennych z config.neon zo sekcie common:dibi);
$this->baseModel->backupDb($dbParams, ‚Y-m-d H-i‘);
Moj problem spociva v tom ze uz asi 3 hodiny bludim po fore a nemozem najst sposob ako nacitat tieto parametre. Stale narazim len ako sa dostat k sluzbe (dibi) napriklad:
$this->context->dibi
alebo
$this->getService(‚dibi‘)
Ale nic z toho Mi situaciu neriesi.
Velmi pekne dakujem za pomoc.
- peter.z
- Člen | 37
Alebo si mozes nechat injectnut do presenteru DibiConnection a potom pouzit nieco nasledovne:
$this->dibiConnection->getConfig(); // $this->dibiConnection instanceOf DibiConnection
- tomdawayhet
- Člen | 20
Tabetha napsal(a):
V presentri sa k premenným dostaneš napr takto…nie som si istý či je to najsprávenjší postup, ale k dibi sa dostaneš …
$this->getContext()->parameters;
Vdaka za odpoved, no tento postup Mi vypise nasledovne:
array(10) {
[„appDir“]=>
string(28) „/var/www/swapp/sub/nette/app“
[„wwwDir“]=>
string(24) „/var/www/swapp/sub/nette“
[„debugMode“]=>
bool(true)
[„productionMode“]=>
bool(false)
[„environment“]=>
string(10) „production“
[„consoleMode“]=>
bool(false)
[„container“]=>
array(2) {
[„class“]=>
string(15) „SystemContainer“
[„parent“]=>
string(18) „Nette\DI\Container“
}
[„tempDir“]=>
string(36) „/var/www/swapp/sub/nette/app/../temp“
[„tables“]=>
array(1) {
[„users“]=>
string(5) „users“
}
[„nette“]=>
&NULL
}
Postup v dalsom prispevku som rozchodil a vyzera ze vypise to co potrebujem. Este raz vdaka :)
- tomdawayhet
- Člen | 20
peter.z napsal(a):
Alebo si mozes nechat injectnut do presenteru DibiConnection a potom pouzit nieco nasledovne:
$this->dibiConnection->getConfig(); // $this->dibiConnection instanceOf DibiConnection
:) Velmi velmi dakujem, funguje skvele, injectovat dibi ma nenapadlo, no i tak Mi pride divne ze neexistuje priamy pristup k premennej v neon.
- tomdawayhet
- Člen | 20
Tabetha napsal(a):
ja napríklad vidím tú sekciu cez to čo som písal, no má hodnotu NULL, čiže ked potrebujem pristúpiť k tým hodnotám niekde, používam to, čo napísal peter.z
Mozno je to tym umiestnenim parametrov pre pripojenie asi to mam inac ako Ty a preto Mi zobrazi len par veci.