NetteExtension aneb konfigurace všeho v Nette pomocí config.neon

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Filip Procházka
Moderator | 4668
+
0
-

@dibi.connection nepřistupuje k žádné „subservice“, jenom má před názvem „dibi.“. Je to něco jako namespace, čili tvůj zápis je nefunkční.

services:
        dibi.connection: DibiConnection( ... )

Tečková notace pro následování zanoření funguje pouze pro parametry %database.user%. Služby v DI Containeru jsou v plochém poli, žádné vnořené asociace tedy nejsou možné.

A ne, Neon takový zápis neumí a dost bych pochyboval o jeho nutnosti, spíš bych na to šel od lesa.

services:
	session:
		setup:
			- "$service->setOptions(array('setOptions' => $this->httpRequest->uri->scriptPath))"

setup služby totiž umožňuje zapisovat PHP kód :)

Editoval HosipLan (13. 2. 2012 6:57)

martyx
Člen | 5
+
0
-

HosipLan napsal(a):

@dibi.connection nepřistupuje k žádné „subservice“, jenom má před názvem „dibi.“. Je to něco jako namespace, čili tvůj zápis je nefunkční.

Tečková notace pro následování zanoření funguje pouze pro parametry %database.user%. Služby v DI Containeru jsou v plochém poli, žádné vnořené asociace tedy nejsou možné.

A ne, Neon takový zápis neumí a dost bych pochyboval o jeho nutnosti, spíš bych na to šel od lesa.

setup služby totiž umožňuje zapisovat PHP kód :)

Díky za vysvětlení, už mi to je jasné. Moc jsem nezkoumal zdroják a pro dibi jsem použil

class DibiNetteExtension

z dibi, vlastně podle kuchařky a tam se metoda DibiConnection zaregistruje jako služba "@dibi.connection". Proto jí pak můžu použít takto

services:
     sitemapModel: \Models\Sitemap\SitemapModel(@dibi.connection)
     ...

Díky za tip s PHP kódem a vůbec za celé vysvětlení.

_Martin_
Generous Backer | 679
+
0
-

@HosipLan: To s metodou setup taky nefunguje, snaží se to rovnou vložit tuto hodnotu jako textový parametr funkci ini_set =( Zkoušeno na vývojové verzi stažené cca před 15 minutami.

awsickness
Člen | 98
+
0
-

chtel bych se zeptat je nejak mozne udelat v configu napriklad sekci

extensions:
	ext1:
		class: \class1
	ext2:
		class: \class2

a pak nekde udelat neco jako

foreach ($extensions as $key => $val){
	$configurator->addExtension($key,$val['class']);
}

zatim jsem si hral s verzi ze mam jedno zakladni extension to ve svem configu ma takovouto strukturu a v loadconfigu prave toto dela ale neprijde mi to nejak pekne.
diky za popostrceni.

awsickness
Člen | 98
+
0
-

no to je pekne ale na tom odkazu nevidim jak podvrhnout configuratoru aby hledat extensions a tuto sekci projel a zkusil pro kazdou polozku addExtensions ? mozna se blbe vyjadruji ale jde mi o to abych nemusel rucne psat do bootstrapu $config->addExtensions

Felix
Nette Core | 1186
+
0
-

awsickness napsal(a):

no to je pekne ale na tom odkazu nevidim jak podvrhnout configuratoru aby hledat extensions a tuto sekci projel a zkusil pro kazdou polozku addExtensions ? mozna se blbe vyjadruji ale jde mi o to abych nemusel rucne psat do bootstrapu $config->addExtensions

Patrik to myslel tak, podle me teda, ze si pridas extension s nazvem „extensions“ a v ni si zpracujes pak ty svoje ext1, ext2 apod. Pokud to teda tak nutne potrebujes.

Tharos
Člen | 1030
+
0
-

Ahoj, chtěl bych se zeptat, jestli by již nestálo za to umístit někam do dokumentace odkaz na tuto stránku?

Zatím se na ni AFAIK odnikud z dokumentace nedá dostat. Odkaz na ni existuje pouze v tomto vlákně (v úplně prvním příspěvku).

awsickness
Člen | 98
+
0
-

Felix napsal(a):

awsickness napsal(a):

no to je pekne ale na tom odkazu nevidim jak podvrhnout configuratoru aby hledat extensions a tuto sekci projel a zkusil pro kazdou polozku addExtensions ? mozna se blbe vyjadruji ale jde mi o to abych nemusel rucne psat do bootstrapu $config->addExtensions

Patrik to myslel tak, podle me teda, ze si pridas extension s nazvem „extensions“ a v ni si zpracujes pak ty svoje ext1, ext2 apod. Pokud to teda tak nutne potrebujes.

to jsem prave psal ze tak delam ale nejak mi to neprislo jako pekne resni zkusim zitra ohnout configurator nejak aby hledal klicovou sekci a uvidime
EDIT:
muzete prosim nekdo potvrdit pokud udelam $compiler->addExtension v nejake extension tak se ta vnorena neprida ? tudiz pak config zahlasi ze pro danou sekci neni extension ?

Editoval awsickness (16. 2. 2012 13:24)

honzajavorek
Člen | 57
+
0
-

Tohle:

strictMode: TRUE

…mi nefunguje.

JakubJarabica
Gold Partner | 184
+
0
-

Ked chcem vypnut routingDebugger, musim to robit na dvoch miestach:

common:
	nette:
		application:
			debugger: false
		routing:
			debugger: false

.. je to kvoli tomuto: source-Config.Extensions.NetteExtension.php.html#35 a source-Config.Extensions.NetteExtension.php.html#40.

V application mi to pride zbytocne.

David Grudl
Nette Core | 8107
+
0
-

Stačí ho vypnout v tom „routing“.

2bfree
Člen | 248
+
0
-

Musím s politováním říct, že rozchodit Debugger výhradně přes config.neon nelze

nette:
        container:
                debugger: true  # aktivuje panel v Debugger baru

nefunguje a panel neaktivuje. ;(

22
Člen | 1478
+
0
-

to, co tenhle zápis aktivuje, je výpis SystemContaineru v Dbaru
..samozřejmě je nutné mít prostředí v development modu

V bootstrapu pak ještě:

$configurator->enableDebugger(__DIR__ . '/../log');

Editoval 22 (9. 3. 2012 12:17)

2bfree
Člen | 248
+
0
-

22 napsal(a):

to, co tenhle zápis aktivuje, je výpis SystemContaineru v Dbaru
..samozřejmě je nutné mít prostředí v development modu

V bootstrapu pak ještě:

$configurator->enableDebugger(__DIR__ . '/../log');

Děkuji za upřesnění a omlouvám se za mistifikaci.

alan_ig
Člen | 11
+
0
-

Jde nějakým způsobem ovlivnit nastavení podle modulu? Rád bych měl pro FrontModule jiné přihlašovací údaje do db než v AdminModule.

mposchl
Člen | 1
+
0
-

Ahoj, chtel bych poprosit o radu, nevim uz, kde hledat chybu. Mam v nette maly projektik, pouzivam v nem dibi a registruji ho pomoci NetteExtension. Presel jsem na novy pocitac a system – mac OS. Na puvodnim starem PC (win xp) mi vsechno chodilo v pohode, ale po prechodu na MAC mi configurator spravne nevygeneruje container a chybi sluzba „dibi“. Nefunguje mi tedy odkaz $this->context->dibi->connection v prezenterech. Kdyz mrknu do zdrojaku cache configuratoru, metoda createServiceDibi tam skutecne neni… Nastaveni se nemenilo, pro instalaci dibi i nette pouzivam composer. No a proste uz si vazne nevim rady, nedokazal by me nekdo nasmerovat? ktere zdrojaky sem hodit, abych pomohl? diky moc za kazdy napad…

EDIT: odpovim si sam – pouzival jsem dev verzi nette a v ni byly zruseny nestedaccessory, sice nevim, jak primo to spolu souvisi, ale pri prechodu na release 2.0.7 se problem vyresil. Skoda, ze jsem nevyguglil na to tema zadne info, nejspis s tim problemem bojuje vic lidi, kteri pouzivaji vyvojovou verzi a registruji dibi pomoci netteExtension… :)

Editoval mposchl (8. 12. 2012 19:53)

Caine
Člen | 216
+
0
-

Pro ty, ktery by to snad nenapadlo (vcetne me), tak SMTP se nastavuje takovymto uzasnym WTF zpusobem:

nette:
	mailer:
		smtp: ...
		host: mailtrap.io
		port: 2525
		username: blabla
		password: ***

nikoliv takto, jak by normalni clovek ocekaval:

nette:
	mailer:
		smtp:
			host: mailtrap.io
			port: 2525
			username: blabla
			password: ***

PS: Kdyz uz se to pouziva takhle neintuitivni zpusob, nechapu proc ten priklad na zacatku neni rozepsanej?!

Tomáš Votruba
Moderator | 1114
+
0
-

V příkladu v prvním postu i v dokumentaci máš smpt: true, což logicky nemůže rozvíjet další pole.

Koukni na neon syntax, chceš-li vidět více.

Caine
Člen | 216
+
0
-

Ja tam teda to true v prvnim postu nevidim, proto je to tak matouci
http://i.imgur.com/nuk0S4V.png

Editoval Caine (31. 1. 2013 16:05)

kuzma88
Člen | 15
+
0
-

Caine napsal(a):

Ja tam teda to true v prvnim postu nevidim, proto je to tak matouci
http://i.imgur.com/nuk0S4V.png

Na tomhle se nachytalo hodně lidí … včetně mě :-)

srigi
Nette Blogger | 558
+
0
-

Zdravim,
je nejakym sposobom mozne do config.neon zapisat jednosmernu routu?

routing:
  debugger: true
  routes:
    # ??? 'index.php', Default:Default:default, Route::ONE_WAY
    '<presenter>/<action>[/<id>]' : Default:Default:default

Editoval srigi (27. 5. 2013 10:12)

Mirr
Člen | 5
+
0
-

Ahoj,

bohužel:

nette:
    session:
        secure: true

nenastaví nette-browser secure parametr na true. Abych to zprovoznil, tak jsem to musel nastavit přímo v Response.php.

Filip Procházka
Moderator | 4668
+
0
-

V session žádný ‚secure‘ parametr není, o co se snažíš?

Jiří Nápravník
Člen | 710
+
0
-

Předpokládám, že o nastavení session cookie secure parameteru

Mirr
Člen | 5
+
0
-

PHPSESSID mi to normálně na secure nastaví, ale nette-browser už ne.

enumag
Člen | 2118
+
0
-

Možná:

nette:
    session:
        cookieSecure: true