Detekcia prostredia v Nette 2.0

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

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

Filip Procházka
Moderator | 4668
+
0
-

Pořádně si prostuduj tuhle metodu.

sumiisakua
Člen | 36
+
0
-

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 :/

Aurielle
Člen | 1281
+
0
-

Pročti si tohle. Mě to taky chvilku trvalo, ale pochopíš to.

michal.miskernik
Člen | 2
+
0
-

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);
?>
Aurielle
Člen | 1281
+
0
-

Tip pro vylepšení: druhý parametr metody addConfig() můžeš vynechat, protože se přesně takto v Configuratoru detekuje :)

Editoval gmvasek (4. 2. 2012 16:15)

sumiisakua
Člen | 36
+
0
-

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)

Aurielle
Člen | 1281
+
0
-

My bad, zase si pletu originální Configurator a svůj upravenej. Příspěvek škrtnut…