NetteExtension aneb konfigurace všeho v Nette pomocí config.neon
- Filip Procházka
- Moderator | 4668
@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
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í.
- awsickness
- Člen | 98
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
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 | 1245
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
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
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)
- JakubJarabica
- Gold Partner | 184
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.
- mposchl
- Člen | 1
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
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
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
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
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ě :-)