Definovanie prametrov v neone a prístup k parametrom v aplikácii

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

Naydar,
môže mi prosím vás niekto vysvetliť nasledovné otázky?
V noene mám

common:
	parameters:
		absoluteUrl: http://xxx.xx
		documentRoot:
development < common:
	parameters:
		absoluteUrl: http://localhost/NCMS
		documentRoot: /NCMS

otázky:

  1. je to vôbec správne zapísané?
  2. môže byť paremeter documentRoot prázdny?(potrebujem prázdny reťazec do javascriptu)
  3. ako sa ku tým parametrom dostanem v presentery?

    Zatiaľ mám cez $this->parameters['absoluteUrl'](objektový zápis ->absoluteUrl neprešiel)

  4. ako sa ku parametrom dostanem v latte?(ešte som neskúšal)

Editoval Čamo (29. 1. 2015 13:11)

Oli
Člen | 1215
+
0
-
  1. Napsané to je dobře. Jen bych se asi držel sandboxu a měl config.neon, local.config.neon, production.config.neon. je to proto, že většinou nechceš ukazovat přístupový údaje v gitu
  2. Podle mě s tím není problém
  3. Pokud to potřebuješ do presenteru, tak buď si zaregistruj presenter jako službu nebo si vytvoř obalovou třídu a do ní ten parametr injectni a tu potom injectni do presenteru
  4. Když už to budeš mít v presenteru tak normálně $this->template->absoluteURL = $this->absoluteURL;
Čamo
Člen | 798
+
0
-

1. snažím sa pochopiť ako funguje ten config.locol.neon ale neviem.
v bootstrap.php mám:

$configurator->addConfig(__DIR__ . '/config/config.neon', Nette\Configurator::AUTO);
$configurator->addConfig(__DIR__ . '/config/config.local.neon', Nette\Configurator::AUTO);

v config neon:

production < common:

development < common:
	includes:
		- config.local.neon

v config.local.neon:

development:
	parameters:

	database:
			dsn: 'mysql:host=127.0.0.1;dbname=ncms'
			user: root
			password: toor
			options:
				lazy: yes

Vyhadzuje mi to error:
Found sections ‚development‘ in configuration, but corresponding extensions are missing.

Keď sekciu zruším, tak zase vyhodí:
Missing section ‚development‘ in file …config.local.neon

Ako to má fungovať?

David Matějka
Moderator | 6445
+
0
-

neinkluduj ten config.local.neon z config.neon, kdyz uz to mas nacteny v bootstrapu…

Čamo
Člen | 798
+
0
-

Keď ho neincludujem, tak ho síce vidí, ale hodnoty sekcie neprepíše(akurát, že nehádže errory)
config.neon:

...
production < common:

development < common:

config.local.neon:

development:
	database:
			dsn: 'mysql:host=127.0.0.1;dbname=ncms'
			user: roo  // tu by mal vyhodiť chybu
			password: toor
			options:
				lazy: yes
David Matějka
Moderator | 6445
+
0
-

asi smaz ty sekce. Koukni, jak je to v sandboxu

Čamo
Člen | 798
+
0
-

V Sandboxe je to tak alibisticky urobené, že tam sa žiadne parametre neprepisujú.

Nefunguje mi vôbec nič, keď to nechám na ten bootstrap. Čakal by som, že posledný načítaný config, prepíše, resp. doplní ten predošlý. Ale nefunguje to nijako. Všetko prebíja ten prvý konfig.

Mohol by sa ku tomu vyjadriť niekto kto tomu rozumie, lebo v documentácii o tom neni ani f.

U toho includu som už pochopil, že includovaný súbor má nižšiu prioritu, ale rád by som chápal ako je to myslené v tom bootstrape.

David Matějka
Moderator | 6445
+
+2
-

Nemas pravdu, pozdeji uvedene configy prepisuji ty predchozi. Takze hodnoty z config.local.neon maji vyssi prioritu. Co konkretne ti nefunguje? ukaz, jak to mas ted… (oba configy a bootstrap)

Čamo
Člen | 798
+
0
-

Aha som to skopíroval z toho gihubu a nevšimol som si, že tam nieje database v sekcii nette.
Potom mi to fungovalo ako include. Čiže to bralo db z local.config.neon len ak som to zmazal v
config.neon.

nette:
	database:
		dsn: 'mysql:host=127.0.0.1;dbname=ncms'
		user: root
		password: toor
		options:
			lazy: yes
services:
	- App\Model\UserManager
	router: App\RouterFactory::createRouter
	authorizatorFactory: App\Model\AuthorizatorFactory
	authorizator: @authorizatorFactory::create
	- App\Model\Categories
	- App\Model\BlogArticles
	- App\Model\Users

config.local.neon

database:
		dsn: 'mysql:host=127.0.0.1;dbname=ncms'
		user: roo
		password: toor
		options:
			lazy: yes

Editoval Čamo (29. 1. 2015 20:36)

Čamo
Člen | 798
+
0
-

Aký je v tom rozdiel, keď je database v sekcii nette a keď je samostatne?

David Matějka
Moderator | 6445
+
+1
-

@Čamo jak mozna vis, v 2.2 doslo k rozdeleni nette na balicky. Pred tim konfiguraci resilo nette z jednoho mista (proto to bylo pod sekci nette), ale nyni si tu konfiguraci resi samo nette/database. Puvodni zapis funguje z duvodu zpetne kompatibility, ale je lepsi pouzit ten novy (tedy samostatne database)

Čamo
Člen | 798
+
0
-

Puvodni zapis funguje z duvodu zpetne kompatibility, ale je lepsi pouzit ten novy

Dobre vedieť. Díky.

Čamo
Člen | 798
+
0
-

Ešte jedna otázka.
Všetko čo sa dávalo do sekcie nette sa teraz dáva samostatne?

David Matějka
Moderator | 6445
+
+1
-

V 2.2 pouze database. V 2.3 bude osamostatneni dokonceno a vsechno bude mit sve extension (a tedy i sekci)