Latte 3: Lze ovlivnit pořadí registrace extension v config.neon?
- Kajda23
- Člen | 42
Ahoj,
vytvořil jsem si extension, které přepisuje jeden z formulářových tagů.
Problém je, že pokud mojí extensionu registruji v configu (latte:
extensions: – MojeExtenšna), je zaregistrována před formulářovou
extensionou a tudíž jí nepřepíše. Lze pořadí registrace nějak ovlivnit
nebo nějak jinak dostat mojí verzi tagu místo standardní?
Editoval Kajda23 (24. 10. 2022 10:34)
- Marek Bartoš
- Nette Blogger | 1297
Tak jak píšeš to teď opravdu nejde. Latte DI extension registruje Latte extensions při vytváření Engine přes LatteFactory, zatímco FormsExtension se registruje až následně v TemplateFactory https://github.com/…eFactory.php#…
Můžeš řešit tak, že svoji extension zaregistruješ pomocí události TemplateFactory::$onCreate(), aby registrace tvé proběhla až po registraci původní.
- David Grudl
- Nette Core | 8254
Asi by se to dalo řešit přidáním volby after
, kde by se
uvedlo, za jakou extension se má přidávaná zařadit…
Editoval David Grudl (24. 10. 2022 14:03)
- petr.pavel
- Člen | 535
Nebo v addExtension() nepřidávat tu samou extension podruhé. Pak by šlo v configu Nette\Bridges\FormsLatte\FormsExtension uvést před mou extension a tím ovlivnit pořadí načítání.
Editoval petr.pavel (4. 4. 2024 17:26)
- David Grudl
- Nette Core | 8254
Upravím kód tak, aby se nejdříve přidaly CacheExtension a FormsExtension, a teprve poté uživatelské extensions.
UIExtension je vázané na $control, ale to by se dalo řešit úpravou
LatteFactory, aby $control
přijímala jako parametr.
Můžete to otestovat v 3.2-dev