Vlastní extension – náhrada parameters
- MartinitCZ
- Člen | 580
Ahoj.
Potřeboval bych vlastní extension, z kterého budu brát určitá
nastavení.
Přidal jsem si Extension
„martinit“ ,ale už se mi nijak nedaří nastavit výchozí parametry. Toto
rozšíření by mělo fungovat jako $this->context->params
jen to bude v mé extension.
Nevíte, jak nastavit ty výchozí parametry?
Díky :)
martinit:
uploadDir: "%wwwDir/asset/upload"
defaultAvatar:
Editoval martinit (23. 10. 2012 20:33)
- Patrik Votoček
- Člen | 2221
class Extension extends \Nette\Config\CompilerExtension
{
public $defaults = array(
'defaultAvatar' => 'foo',
);
public function loadConfiguration()
{
dump($this->getConfig($this->defaults));
}
}
martinit:
uploadDir: "%wwwDir/asset/upload"
output:
array(
'uploadDir' => '%wwwDir/asset/upload',
'defaultAvatar' => 'foo',
);
Ale nejsem si zcela jistý jestli je to to na co jsi se ptal…
Btw máš tam typo %wwwDir%
(chybí ti tam
závěrečné ‚%‘.
- MartinitCZ
- Člen | 580
@Patrik Votoček: K tomuto jsem se dostal (dokonce i ten dump vypíše vše jak má), ale už se nemůžu dostat k těm parametrům např. v presenteru.
Editoval martinit (23. 10. 2012 21:18)
- Patrik Votoček
- Člen | 2221
můžeš uvést příklad toho jak to chceš použít? moc pořád nechápu co že to vlastně chceš…
- MartinitCZ
- Člen | 580
@Patrik Votoček: Používám hodně parametrů pro
určitá nastavení. Abych si to zpřehlednil, tak si chci ukládat ve vlastní
extension (martinit).
Takže použití by mělo vypadat takto
$this->context->martinit->uploadDir
nebo
$this->context->martinit['uploadDir']
.
Snad to jde?
- nanuqcz
- Člen | 822
martinit: Napadají mě 3 možnosti:
- Zkoušel jsi aby ten extension implementoval ArrayAccess (případně dědil z Nette\ArrayHash)?
- Možná by šlo přistoupit k sekci
params
v CompilerExtension a přidat hodnoty tam? S tím ale vůbec nemám zkušenosti, tak to ber s rezervou :-)
public function afterCompile(Nette\Utils\PhpGenerator\ClassType $class)
{
$container = $this->getContainerBuilder();
$container->params['martinit'] = array('foo' => 'bar');
}
- Anebo jak píše mkoubik ;-)
- MartinitCZ
- Člen | 580
@**mkoubik**: Ano o tom vim, ale chtěl jsem to řešit jinak.
@**nanuqcz**: Díky za info, ale bohužel půjde použít jen tam
3. možnost. :/