persistentní parametr v config.neon
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Ivorius
- Nette Blogger | 119
To je dobrý nápad. Mám takovou teoretickou otázku: je lepší to narvat všechno do jedné přepravky – něco jako Config nebo se to snažíte nějak logicky seskupovat (popřípadě individuálně) ? Ono toho moc nebude, v podstatě mě zatím napadá jen ten jazyk (ale abych netahal piáno) :)
- Majkl578
- Moderator | 1364
Možná by bylo lepší na presenter a persistentní proměnnou rezignovat (ona tam sice bude, ale z pohledu modelové vrstvy je to nezajímavá informace) a řešit to třeba takto: https://github.com/…Resolver.php
- Filip Procházka
- Moderator | 4668
Nebo ještě lépe, rovnou přejít na Kdyby/Translator, který to řeší (viz Majkl) :)
- Filip Procházka
- Moderator | 4668
Správné řešení je záviset na translatoru, protože jazyk se může v průběhu života aplikace měnit.
namespace MyApp;
class TranslatableListener extends \Gedmo\Translatable\TranslatableListener
implements \Kdyby\Events\Subscriber
{
private $translator;
public function __construct(Kdyby\Translation\Translator $translator)
{
$this->translator = $translator;
}
public function getSubscribedEvents()
{
return array_merge(parent::getSubscribedEvents(), array(
'Nette\Application\Application::onRequest'
));
}
/**
* Tenhle event se logicky musí volat až po tom v translatoru,
* mělo by to ovlivnit pořadí registrace v configu a případně je možné použít váhy
* https://github.com/Kdyby/Events/blob/master/docs/en/index.md#listener-priorities
*/
public function onRequest($app, $request)
{
$this->setTranslatableLocale($this->translator->getLocale());
}
public function getListenerLocale()
{
return $this->translator->getLocale();
}
}