Zjištění údajů pro přihlášení do databáze
- webdata
- Člen | 153
Zdravím,
Rozhodl jsem se že do svého CMS zakomponuji Adminer(a). Ale narazil jsem na problém. Jelikož nechci aby se museli v admineru zadávat přihlašovací údaje, tak bych rád tyto udaje admineru předal. Což není problém a řešení jak to udělat už mám.
Problém je v tom, že mám přihlášení do databáze řešené jako
službu a tudíš vše mám vo config.neon
a to takto:
.
.
.
services:
database:
class: NConnection
arguments: ['mysql:host=localhost;dbname=nazevdatabaze', 'root', 'root']
model:
class: Model
arguments: [@database, @cacheStorage]
.
.
.
Otázka zní. Jak se mám dostat v presenteru k následujícím
údajům:
host, dbname, username a password?
Předem dík za radu.
Verze Nette: Nette Framework 2.0-beta (revision 8a3182e released on 2011–10–11)
- Michal Vyšinský
- Člen | 608
Myslím, že by to mělo jít takto:
$this->context->parameters["database"]["host"]
$this->context->parameters["database"]["dbname"]
$this->context->parameters["database"]["username"]
$this->context->parameters["database"]["password"]
Edit: jestli to ovšem máš v sekci „database“ jestli ne, tak [„database“] vynech
Editoval CherryBoss (9. 2. 2012 19:05)
- webdata
- Člen | 153
Dík za radu, ale bohužel parameters není definovaný.
Pokud udělám dump v presenteru
dump($this);
Tak mám jakž takž přístupk k tomuto:
AdminerPresenter(34) {
showAdminPanel protected => TRUE
breadcrumbs protected => array(0)
pageId protected => NULL
menuId protected => NULL
isPageDefault protected => FALSE
filesDir protected => "C:\\xampp\htdocs\LiteCms\cms/../files/" (37)
onShutdown => NULL
request private => NPresenterRequest(7) {
method private => "GET" (3)
flags private => array(1) {
secured => FALSE
}
name private => "Adminer" (7)
params private => array(2) {
action => "default" (7)
id => NULL
}
post private => array(0)
files private => array(0)
frozen private => TRUE
}
response private => NULL
autoCanonicalize => TRUE
absoluteUrls => FALSE
globalParams private => array(0)
globalState private => NULL
globalStateSinces private => NULL
action private => "default" (7)
view private => "default" (7)
layout private => NULL
payload private => stdClass(0)
signalReceiver private => ""
signal private => NULL
ajaxMode private => FALSE
startupCheck private => TRUE
lastCreatedRequest private => NULL
lastCreatedRequestFlag private => NULL
context private => NDiContainer(6) {
params => array(8) {
productionMode => FALSE
consoleMode => FALSE
wwwDir => "C:\\xampp\htdocs\LiteCms" (23)
appDir => "C:\\xampp\htdocs\LiteCms\cms" (27)
libsDir => "C:\\xampp\htdocs\LiteCms\cms/../libs" (35)
tempDir => "C:\\xampp\htdocs\LiteCms\cms/_temp" (33)
developmentMode => TRUE
menuMaxLevels => 2
}
registry private => array(18) {
container => NDiContainer(6) { *RECURSION* }
application => NApplication(11) { ... }
presenterFactory => NPresenterFactory(4) { ... }
router => NRouteList(3) { ... }
httpRequest => NHttpRequest(9) { ... }
httpResponse => NHttpResponse(5) { ... }
httpContext => NULL
session => NSession(4) { ... }
user => NUser(7) { ... }
cacheStorage => NFileStorage(3) { ... }
templateCacheStorage => NPhpFileStorage(4) { ... }
cacheJournal => NFileJournal(9) { ... }
mailer => NULL
robotLoader => NRobotLoader(8) { ... }
database => NConnection(7) { ... }
model => NULL
authenticator => NULL
modelLoader => ModelLoader(2) { ... }
}
factories private => array(5) {
router => array(2) [ ... ]
httpContext => array(2) [ ... ]
mailer => array(2) [ ... ]
model => array(2) [ ... ]
authenticator => array(2) [ ... ]
}
tags private => array(18) {
container => NULL
application => NULL
presenterFactory => NULL
router => NULL
httpRequest => NULL
httpResponse => NULL
httpContext => NULL
session => NULL
user => NULL
cacheStorage => NULL
templateCacheStorage => NULL
cacheJournal => NULL
mailer => NULL
robotLoader => array(1) { ... }
database => NULL
model => NULL
authenticator => NULL
modelLoader => NULL
}
creating private => array(0)
frozen private => FALSE
}
template private => NULL
invalidSnippets private => array(0)
snippetMode => NULL
params protected => array(2) {
action => "default" (7)
id => NULL
}
components private => array(0)
cloning private => NULL
parent private => NULL
name private => "Adminer" (7)
monitors private => array(1) {
NPresenter => array(4) [
0 => NULL
1 => NULL
2 => NULL
3 => TRUE
]
}
}
Takže takhle se dostanu pouze k řetězci připojení.
dump($this->context->database->dsn);
Který vypíše: „mysql:host=localhost;dbname=lite-cms“ (36)
- Michal Vyšinský
- Člen | 608
Tak zkus místo parameters použít params. Teď v novém je params označeno za DEPRECATED ale možná v tvé verzi je ještě params.
- webdata
- Člen | 153
Taky ne.
dump($this->context->params);
Výstup:
array(8) {
productionMode => FALSE
consoleMode => FALSE
wwwDir => "C:\\xampp\htdocs\LiteCms" (23)
appDir => "C:\\xampp\htdocs\LiteCms\cms" (27)
libsDir => "C:\\xampp\htdocs\LiteCms\cms/../libs" (35)
tempDir => "C:\\xampp\htdocs\LiteCms\cms/_temp" (33)
developmentMode => TRUE
menuMaxLevels => 2
}