Ako správne nahradiť addDefinition()
- KristianSubweb
- Člen | 146
Ahojte chcel by som sa opýtať riešim preklopenie projektu s Nette 2.4 na Nette 3.1. Každý modul má u nás v Aplikácii aj registráciu svojich vlastných extension. Aktuálne som sa zasekol na tom ako ju po novom viem zaregistrovať.
Aktuálne je to takto:
$builder->addDefinition($this->prefix('DirService'))
->setClass('DefaultModule\Services\DirService',
$builder->parameters["wwwDir"],
$builder->parameters["appDir"],
"@Nette\Http\Request"
]);
Vopred ďakujem za odpoveď :)
- Marek Bartoš
- Nette Blogger | 1280
Důležitá část je změna class na factory. Ty další změny jsou drobná vylepšení
$builder->addDefinition($this->prefix('DirService'))
->setFactory(\DefaultModule\Services\DirService::class, [
$builder->parameters["wwwDir"],
$builder->parameters["appDir"],
$builder->getDefinitionByType(\Nette\Http\Request::class),
]);
- KristianSubweb
- Člen | 146
Mabar napsal(a):
Důležitá část je změna class na factory. Ty další změny jsou drobná vylepšení
$builder->addDefinition($this->prefix('DirService')) ->setFactory(\DefaultModule\Services\DirService::class, [ $builder->parameters["wwwDir"], $builder->parameters["appDir"], $builder->getDefinitionByType(\Nette\Http\Request::class), ]);
Ďakujem moc za odpoveď tak zabralo. Ešte by ma zaujímalo čo je podľa vás také viac prechodnejšie vytvárať a registrovať každý modul cez .neon file alebo ako v mojom prípade ModuleNameExtension.php
- Marek Bartoš
- Nette Blogger | 1280
Používám neon ve složce modulu, i v případě composer balíků. Píše se snadněji než extension a není třeba tolik řešit priority (snad jen seřazení configů z balíků podle jejich závislostí). Extension jen pro nějaké komplexnější věci a registruje ji balík sám, ve svém neonu.