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 | 2668
 
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)