jak získat název databáze z neon.config

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

Ahoj,

chtěl bch si vytvořit kontantu v baseRespository s názvem databáze a abych nměl dvě místa, kde se musí případně měnit chtěl bych si to načíst z config.neon.

Jakým způsobem na to? Díky.

mkoubik
Člen | 728
+
+1
-

Konstanty se nedají nastavovat v runtimu. Nastav si to jako parametr a pak si to předej kam potřebuješ.

parameters:
	database_name: test

nette:
	database:
		dsn: "mysql:host=localhost;dbname=%database_name%"
		user:
		password:

services:
	- App\Model\FooRepository(%database_name%, ...)

Editoval mkoubik (10. 6. 2014 22:53)

Oli
Člen | 1215
+
+1
-

Proc nedas nazev databaze rovnou do configu?

nette:
	database:
		dsn: 'mysql:host=127.0.0.1;dbname=test'
		user:
		password:
		options:
			lazy: yes

Btw. ja teda nikdy nepracuju v aplikaci s názvem databáze. Pracuju vždy s repository/entitama, který mají injectunejt Context. Takže název databáze si nastavíš v configu a pak už tě nikdy nezajímá.

qteck
Člen | 164
+
0
-

okay, já jeno m ubral jdnu podmínku, defaultně to nebírá z db která je načtená, tak aspoň že tak.

nicméně, pokud bych chtěl pracovat s databas name jako z proměnnou někde ve scriptu, dá se to něják jednoduše? třeba $název_db = config_neon(array(parametrs=>database)) ?

Díky.

Oli
Člen | 1215
+
0
-

qteck napsal(a):
nicméně, pokud bych chtěl pracovat s databas name jako z proměnnou někde ve scriptu, dá se to něják jednoduše? třeba $název_db = config_neon(array(parametrs=>database)) ?

Přesně to ti napsal mkoubik. Má tam db name jako parametr a vložil ho do App\Model\FooRepository. Tam s tím můžeš potom pracovat jako s normálním stringem.

public function __construct($dbName)
{
	dump($dbName); // vypíše "test" (název databáze)
}
qteck
Člen | 164
+
0
-

ou tak tohle je pecka :-)))