Detekcia prostredia v Nette 2.0

- michal.miskernik
 - Člen | 2
 
Ahojte, po novom sa v Nette používa pre detekciu prostredia parameter
environment. Toho defaultná hodnota je
static::detectProductionMode() ? self::PRODUCTION : self::DEVELOPMENT.
To ale znamená, že ak si chcem do detekcie pridať vlastnú IP, tak jediný
spôsob, na ktorý som prišiel je tento:
<?php
$prod = $configurator->detectProductionMode(array("x.x.x.x"));
$configurator->addParameters(array(
  "environment" => $prod ? $configurator::PRODUCTION : $configurator::DEVELOPMENT,
  "productionMode" => $prod
));
$configurator->enableDebugger(__DIR__ . '/../log');
?>
To sa mi ale zdá trochu nešikovné. Existuje lepšie riešenie? Ďakujem

- sumiisakua
 - Člen | 36
 
HosipLan: Jenže setProductionMode() nemá žádný vliv na environment. To se určí až u addConfig() ti, že tam prostředí napíši.
Musim změnit 2 nastavení, abych určil kde to vlastně jsem :/

- michal.miskernik
 - Člen | 2
 
gmvasek: Ďakujem, to je ono :)
Vyriešil som to tak, že najprv detekujem produkčný mód:
<?php
$configurator->setProductionMode("x.x.x.x");
?>
A následne podľa toho načítam správnu sekciu z configu:
<?php
$configurator->addConfig(__DIR__ . '/config/config.neon',
  $configurator->productionMode ? $configurator::PRODUCTION : $configurator::DEVELOPMENT);
?>
				
- sumiisakua
 - Člen | 36
 
gmvasek: to není pravda. Detekuje se to podle environment. viz: https://api.nette.org/…tor.php.html#159
Takže pokud má localhost na 192.168.0.0 což bude jeho „x.x.x.x“, tak mu pojede laděnka, ale připojení do db to bude brát ze sekce production.
Proto ta jeho podmínka:
$configurator->productionMode ? $configurator::PRODUCTION : $configurator::DEVELOPMENT
					Editoval sumiisakua (4. 2. 2012 15:17)