Jak v presenteru zjistím zda jsem v produkčním / ladícím modu?

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

Ahoj, asi prkotina… chtěl bych v presenteru zjistit zda se nacházim v PRODUCTION nebo v DEVELOPMENT módu. Metodu vidím v Nette\Config\Configurator::isDebugMode(), ale nevim jak se dostat v presenteru ke konfigurátoru?
Díky díky.

one-two
Člen | 80
+
0
-

dumpni si $this->context->params

Editoval one-two (14. 2. 2013 10:58)

hejdav
Člen | 50
+
0
-

Díky!! Jen bych spíš použil $this->context->parameters, params je deprecated, ae to je detail.

David Ďurika
Člen | 328
+
0
-

ale aj $this->context je deprecated :)

Jan Tvrdík
Nette guru | 2595
+
0
-

achtan wrote: ale aj $this->context je deprecated :)

Není.

enumag
Člen | 2118
+
0
-

Jan Tvrdík napsal(a):

achtan wrote: ale aj $this->context je deprecated :)

Není.

Všichni víme že je to v podstatě jen otázka času. :-) A i kdyby nakonec deprecated nebyl tak jeho používání je přinejmenším nedoporučováno.

Jan Tvrdík
Nette guru | 2595
+
0
-

enumag wrote: Všichni víme že je to v podstatě jen otázka času. :-)

Já to nevím, ve stable ani v dev není deprecated a do budoucnosti nevidím.

jeho používání je přinejmenším nedoporučováno

Ani s tímhle úplně nesouhlasím. $this->context nemá rovnocennou alternativu.

enumag
Člen | 2118
+
+1
-

Jan Tvrdík napsal(a):
Ani s tímhle úplně nesouhlasím. $this->context nemá rovnocennou alternativu.

S tím souhlasím, jen nějak nemám pocit že bych tu rovnocenou alternativu potřeboval.

Navíc kdo to potřebuje může si to udělat sám, ve frameworku to být nemusí.

protected $container;
public function injectContainer(\Nette\DI\Container $container) { ... }
public function getContext() { return $this->container; }
uestla
Backer | 799
+
0
-

Používám poděděnou PresenterFactory, ve které na vytvořené instanci presenteru volám setParameters($container->parameters).

Metodu setParameters() dám do BasePresenteru a v každém dílčím presenteru, který oproti tomu Base* potřebuje ještě nějaký parametr navíc, si setParameters() přepíšu. Např.:

class HomepagePresenter extends BasePresenter
{
	/** @var bool */
	protected $productionMode;



	function setParameters(array $params)
	{
		parent::setParameters($params);
		$this->productionMode = (bool) $params['productionMode'];
		return $this;
	}
}