Jak načíst hodnotu z konfigurace do šablony?
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Myiyk
- Člen | 321
Potřebuji si do šablony předat hodnotu z konfigurace, která je v config.neon
facebook:
appId: "1504449449787274" # tohle chci dostat do šablony
abstract class BasePresenter extends Nette\Application\UI\Presenter {
public function beforeRender() {
parent::beforeRender();
$this->template->facebookAppId = "Jak se dostat do configu?";
}
}
Jak to provést co nejjednodušeji? Ideálně na jeden řádek.
- Šaman
- Člen | 2665
U presenterů se to snese, ale obecně je lepší, když třída jasně deklaruje svoje závislosti. Tvůj presenter tedy nebude fungovat bez proměnné v configu, ale z veřejného API třídy to není poznat. Taky se ti to bude špatně automaticky testovat, protože ten parametr jednoduše nepředáš odjinud.
Jako čisté a nejjednodušší řešení bych viděl public setter a jeho nastavení v configu:
# App\Presenters\FbPresenter.php
protected $fbAppId;
public function setFbAppId($fbAppId)
{
$this->fbAppId= $fbAppId;
}
# config.neon
parameters:
facebook:
appId: "1504449449787274"
services:
-
class: App\Presenters\FbPresenter
setup:
- setFbAppId(%facebook.appId%)
Editoval Šaman (24. 7. 2014 1:11)