Jak správně nastavit Environment, aby četl „production“ sekci z config.neon?

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

Ahoj všem,

chtěl bych předeslat, že jsem hodinu zkoumal vše možné, existující témata ve fóru, google i dokumentaci, a nenašel jsem jednoznačný, aktuální a kompletní příklad, jak správně pracovat s „production“ a „development“ prostředími :(

Poradíte mi někdo best-practice?

Cíl: mít 1× bootstrap, 1× config.neon tak, aby když tentýž nahraju na production server, se použil správný blok – např. na základě host_name.

Detekci host_name udělám snadno, ale problém je, že mi zaboha nic nečte proměnné, co mám v config.neon v bloku „production“.

Nastavuju v bootstrapu:

Environment::setProductionMode(TRUE);

A u kus dále mi správně vrací Environment::isProduction(); „true“.

Ale pořád se mi nečtou data z configu, které jsou v bloku „production“ – všude se mi používají jen ty z „common“.

Vše v kontextu PHP 5.3 a aktuálního Nette 2.0.

Poradíte prosím? :(

fojta
Člen | 24
+
0
-

Cau cau,
nejsem nejakej expert v NETTE, ale zkus

Debugger::enable(Debugger::PRODUCTION);

a pak si tahej parametry z configu pres

// configuration
$configurator = new Configurator();
$container = $configurator->loadConfig(APP_DIR . "/config.neon");
$container->params["neco"];
knoxa
Člen | 16
+
0
-

Hoj, zrovna před chvíli jsem to řešil, to co píše fojta nepomůže.

Mě pomohlo až nastavení productionMode ručně v bootsprap.php :

$configurator->container->params['productionMode'] = true;

Na IIS se nedetekovalo a nedetekuje produkční prostředí. Taky jsem v Nette nudla, a asi to nebude to správný řešení, ale funguje to. Taky si počkám na odpověď někoho zkušenějšího.

Editoval knoxa (7. 8. 2011 14:33)

Patrik Votoček
Člen | 2221
+
0
-

fojta napsal(a):

Cau cau,
nejsem nejakej expert v NETTE, ale zkus

Debugger::enable(Debugger::PRODUCTION);

Tím zapneš produkční mód u laděnky! Ne u Environmentu!

Dělá se to takhle:

$configurator = new Configurator();
$container = $configurator->loadConfig(APP_DIR . "/config.neon", Environment::PRODUCTION); // tady to máš :-)
kahi
Člen | 32
+
0
-

Patrik Votoček napsal(a):
Dělá se to takhle: …

Díky ti! Měl jsem obrácený problém, že lokální instalace se chovala jako Environment::PRODUCTION. (I když jestli tomu správně rozumím, ten problém stále mám, pouze se vypnula autodetekce prostředí…)