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)