Název prostředí jako parametr v CLI

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

Zdravím poslední dobou celkem hodně využívám CLI a schází mě možnost určit název prostředí. Standardní chování že se používá console je nevyhovující protože potřebuji spouštět akce například nad jinou DB na produkci a vývoji.

Co si o tom myslíte?

mkoubik
Člen | 728
+
0
-

Mám podobný problém, potřebuju rozlišit prostředí pro spouštění akcí z CLI (např cronem) a pro spouštění unit testů.

pracj3am
Člen | 14
+
0
-

Nejlepší by byla autodetekce. Rovněž mi to chybí a vyřešil jsem to tak, že prostředí deteguju pomocí php_uname('n').

Ondřej Mirtes
Člen | 1536
+
0
-

vrtak-cz napsal(a):

Co si o tom myslíte?

Je pravda, že konzolový mód by měl taky spadat do jedné ze škatulek development/production a nestát sám o sobě, ale nevím, jak to rozumně ve frameworku vyřešit. Ve tvojí aplikaci to můžeš vyřešit např. tak, že na localhostu budeš console sekci dědit od development a na serveru od production.

mkoubik napsal(a):

Mám podobný problém, potřebuju rozlišit prostředí pro spouštění akcí z CLI (např cronem) a pro spouštění unit testů.

Tohle je v pohodě, definuj si v bootstrapu testů nějakou proměnnou prostředí a podle její existence pak můžeš rozhodovat, co vlastně děláš.

Patrik Votoček
Člen | 2221
+
0
-

Vím jak se to dá řešit a taky to tak řeším… Jen se mě nelíbí že musím pořád editovat od čeho má console dědit. (samo o sobě to popírá podstatu existence těchto sekcí)

pekelnik
Člen | 462
+
0
-

Já už jsem na tohle téma několikrát narazil a vždy mi bylo vysvětleno že je to blbost.

Nicméně též bych se přimlouval za rozdělení CONSOLE módu. Jsou to prostě různé věci.

cli/http

production/development

phx
Člen | 651
+
0
-

Lze nejak nette natvrdo vnutit nejaky mod? Napr nejaky muj mod (jiny nez development, production a cli)?

Ondřej Mirtes
Člen | 1536
+
0
-

Environment::setMode()

Patrik Votoček
Člen | 2221
+
0
-

resp. Environment::setName() :-)

phx
Člen | 651
+
0
-

Jaky je v tom rozdil? setMode vs setName? Takze teoreticky je tu cesticka jak to resit rucne:)

pracj3am
Člen | 14
+
0
-

Name určuje název prostředí, podle kterého se načte konfigurace. Nastavením mode se řídí zpracování výjimek.

phx
Člen | 651
+
0
-

Ja myslel, ze vyjimky resi ladenka. Bud je zapnuta a hazi cervenou obrazovku nebo neni a je 500 + mozna log.

Ondřej Mirtes
Člen | 1536
+
0
-

Když jí zapneš bez parametru nebo s Debug::DETECT, tak se chová na základě environmentu.

A ještě záleží na $application->catchExceptions nastavení.