Nacitanie parametrov pre dibi z config.neon pre presenter

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

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.

Tabetha
Člen | 140
+
0
-

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;
peter.z
Člen | 37
+
0
-

Alebo si mozes nechat injectnut do presenteru DibiConnection a potom pouzit nieco nasledovne:

$this->dibiConnection->getConfig(); // $this->dibiConnection instanceOf DibiConnection

Vid: https://api.dibiphp.com/…ion.php.html#198

tomdawayhet
Člen | 20
+
0
-

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
+
0
-

peter.z napsal(a):

Alebo si mozes nechat injectnut do presenteru DibiConnection a potom pouzit nieco nasledovne:

$this->dibiConnection->getConfig(); // $this->dibiConnection instanceOf DibiConnection

Vid: https://api.dibiphp.com/…ion.php.html#198

:) Velmi velmi dakujem, funguje skvele, injectovat dibi ma nenapadlo, no i tak Mi pride divne ze neexistuje priamy pristup k premennej v neon.

Tabetha
Člen | 140
+
0
-

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

tomdawayhet
Člen | 20
+
0
-

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.