Jak správně rozšiřovat doplňky jako Kdyby\Translation

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
maral
Člen | 25
+
+1
-

Ahoj, používáme na projektu (potenciálně velkém) Kdyby Translator (tímto moc děkujeme za skvělý doplněk!), a chceme upravit triviální věc, to jest prohodit dva nepovinné parametry funkce translate, totiž $count a $parameters, protože typicky budeme mnohem častěji využívat $parameters, $count spíš jen okrajově a nechceme psát pořád dokola NULL do druhého parametru.

Doplněk má poměrně složitou strukturu, sám se registruje pomocí Nette\DI\CompilerExtension, se kterým nemám žádné zkušenosti, a není zřejmé, jak správně rozšířit / zdědit od třídy Translator, když chci pouze přepsat jedinou metodu.

Jaké je nejjednodušší a zároveň udržitelné řešení (aby při dalším updatu doplňku vše fungovalo)?

Filip Procházka
Moderator | 4668
+
+2
-

Prohazovat parametry určitě není dobrý nápad, daleko efektivnější je udělat jeden nepovinný. Přesně tak, jako to dělá helper v latte šablonách, který se sám registruje právě v CompilerExtension, ten sežere všechny tyto varianty.

{_front.homepage.hello}
{_front.homepage.hello, 10}
{_front.homepage.hello, [param => value]}
{_front.homepage.hello, 10, [param => value]}

Myslím si, že bychom to mohli dokonce dát přímo do Kdyby :)


Edit: to by šlo, ne? Kdyby/Translation/Translator.php

maral
Člen | 25
+
0
-

Ten helper to měl sežrat všechno? Protože ani tam mi to předtím nefungovalo. Updatnul jsem a ještě jsi tam měl drobnou chybku, tím posunutím parametrů se nastavila špatně default hodnota pro domain.

Hodil jsem ti pull-request s fixem. Potom už to fungovalo, a v tom helperu tím pádem taky. Díky moc!