Detekce vývojového prostředí v bootstrap.php pro načtení dodatečných neon souborů
- fary
- Člen | 155
ahoj, mam v aplikaci neon soubor, ktery potrebuji nacist pouze pokud aplikace bezi ve vyvojovem rezimu (popr. v debug modu – popravde moc nerozumim, jaky je v tom rozdil, pkud vubec nejaky).
v bootstrap.php mam toto:
$configurator = new Nette\Configurator;
$configurator->enableDebugger(__DIR__ . '/../log');
$configurator->setTempDirectory(__DIR__ . '/../temp');
$configurator->addConfig(__DIR__ . '/config/config.neon');
$configurator->addConfig(__DIR__ . '/config/config.local.neon');
if ($configurator->isDebugMode()) {
$configurator->addConfig(__DIR__ . '/config/dev.neon');
}
return $configurator->createContainer();
ovsem pokud mi aplikace bezi na localhostu, tak se ten dev.neon stejne nenacte.
kde muze byt problem?
- Zuben45
- Člen | 268
vyzkoušej nastavit
$configurator->setDebugMode(true);
já to řeším tak, že vše na web tahám přes git, takže jsem si odebral config.local.neon (pro mě testovací config), pushnul a poté s dalším pushem přidal do .gitignore bootstrap, a u sebe jsem opět přidal testovací config ;). Sice moc nepraktické, ale funkční :)
- fary
- Člen | 155
prisel jsem na jednu moznost.
misto
if ($configurator->isDebugMode()) {
$configurator->addConfig(__DIR__ . '/config/dev.neon');
}
by se pouzilo:
if (getHostByName('localhost') === '127.0.0.1') {
$configurator->addConfig(__DIR__ . '/config/dev.neon');
}
ovsem nevim, jestli je to uplne ok. mohla by nastat situace, ze by se na serveru tato podminka vyhodnotila jako pravda?
- fary
- Člen | 155
@ViPEr*CZ* bohuzel, tohle myslim funguje jenom na webu, ja to potrebuju vyresit jak na webu, tak i v cli. ale diky.
taky me napadlo vyresit to dvema vetvemi na gitu. master by byl kladicky vyvojova vetev, ze ktere by se delali vedlejsi vetve, ktere by se pak zpetne mergovaly do master vetve. druha vetev (napr. deploy) by byla vzdy o par komitu dale a neobsahovala by veci, jako knihovny a nastaveni, ktere by nebyly potreba na produkci.
- ViPEr*CZ*
- Člen | 817
newPOPE napsal(a):
@fary pouzi
ENVIRONMENT
ktory si niekde nastavis (Apache, CLI, …)a v bootstrape len nieco ako
if(getenv('ENVIRONMENT') === 'debug' /* pripadne ine prostredia*/) {...}
Tak pak toto… a nebo stejně tak dobře parametricky. Třeba v PHPStormu si vytvoříš spouštěč a nastavíš parametr pro CLI skript. Pro www to pak zkombinuješ s předchozím příspěvkem. Možností bude asi více.
- h4kuna
- Backer | 740
Já bych to řešil přes config.local.neon, který máš na všech prostředích a pokud potřebuješ něco extra, tak než mít logiku v aplikaci tak si do toho config.local.neon přidej:
include:
- dev.neon
Kde ten config.local.neon předpokládám že je neverzovaný.
Editoval h4kuna (25. 7. 2016 13:16)