config.neon a jeho sekce nette

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

Ahoj, chtěl bych se zeptat, co je to za novou sekci nette, která teď přibyla v konfiguračním souboru v sandboxu?

K čemu slouží? Co všechno může obsahovat?

Díky za odpovědi :-)

Tharos
Člen | 1030
+
0
-

Slouží ke konfiguraci základních Nette služeb. Ty jsou nyní do kontaineru registrovány právě pomocí extenze kompileru NetteExtension (tzn. potomka Nette\Config\CompilerExtension).

Jinými slovy se dá říct, že slouží ke konfiguraci extenze Nette.

Doporučuji také přečíst si tuhle stať od HosipLana. No a pak je celá koncepce IMHO dobře čitelná v samotných zdrojácích…

Edit: Ještě k tomu, co může obsahovat… V podstatě může přetěžovat direktivy uvedené v tomto poli. Je to velmi praktické, tohle se IMHO Davidovi opravdu povedlo. Dá se takto například nakonfigurovat připojení k databázi (využívající Nette\Database), výchozí chybové hlášky u formulářů a spousta dalšího…

Editoval Tharos (26. 1. 2012 0:57)

nanuqcz
Člen | 822
+
0
-

Aha, chápu díky :-)

Co mi ale nedává moc smysl, je tento řádek – kde se přímo ve frameworku tato hodnota database používá? Měl jsem za to, že se používá uvnitř mojí aplikace, když se Nette\Database potřebuje připojit k databázi. Jak to ale souvisí s vnitřními službami Nette a kde se tyto údaje přímo uvnitř frameworku používají?

EDIT: Anebo jinak. Jaké jsou výhody toho, že teď se údaje k databázi nezadávají do sekce parameters, ale do sekce nette?

Editoval xxxObiWan (26. 1. 2012 1:32)

Jan Tvrdík
Nette guru | 2595
+
0
-

xxxObiWan wrote:

EDIT: Anebo jinak. Jaké jsou výhody toho, že teď se údaje k databázi nezadávají do sekce parameters, ale do sekce nette?

Koukni se ještě jednou sem.

nanuqcz
Člen | 822
+
0
-

Omlouvám se, špatně jsem se zeptal :-)

Jaká je výhoda toho, že se služba database nevytváří takto?

	services:
		database: Nette\Database\Connection("%database.driver%:host=%database.host%;dbname=%database.dbname%", %database.user%, %database.password%)

Tento způsob mi prostě přišel přímočarý a přehledný. Vím, že ho můžu používat stále, ale zajímá mě, jaké výhody má ten způsob nový ;-)

ViPEr*CZ*
Člen | 814
+
0
-

No mě úplně první co napadne, že je to součást Nette. Na první pohled je pak vidět, které services jsou z nette a které si děláš sám.

Tharos
Člen | 1030
+
0
-

Jde skutečně jen o myšlenkový posun, kdy nově je služba database již v systémovém kontejneru předregistrována.

To řešení v sandboxu je dost obecné. Skutečný efekt by to mělo až v případě, že bys například ještě někde jinde v aplikaci potřeboval použít přístupové údaje do databáze (příklad mě bohužel nenapadá…). Anebo v případě, že bys chtěl například použít více databázových layerů zároveň. V jiných případech můžeš samozřejmě tu část database v sekci parameters úplně smazat (a tím pádem sekci parameters třeba i úplně zrušit) a údaje vepsat rovnou do sekce nette.

Tím vznikne srovnatelně krátký zápis, jako ten Tebou uvedený, a rozdíl je pouze ten, že ve Tvé ukázce definuješ celou službu, zatímco nově definuješ pouze nastavení té služby.

Tharos
Člen | 1030
+
0
-

xxxObiWan napsal(a):
Co mi ale nedává moc smysl, je tento řádek – kde se přímo ve frameworku tato hodnota database používá?

Abych odpověděl ještě na tohle… Používá se zde. Funguje to tak, že existují nějaké defaultní hodnoty (zde právě takovéto, protože jaké defaultní hodnoty vymyslet u připojení do databáze, že…), které je možné přetížit vlastními. Hodnoty, které se mají použít (tzn. mix defaultních a přetížených) se získává zde, přičemž důležitý řádek je také tento, kde se právě mixují hodnoty získané z Tvého konfiguračního souboru s výchozími (tak aby, ve výsledku žádná hodnota nechyběla).

nanuqcz
Člen | 822
+
0
-

Díky za všechny odpovědi :-)

P.S. David založil v noci toto vlákno, tak se odteď kdyžtak budu ptát tam