Jak na detekci beta prostředí v bootstrapu
- nat
- Člen | 12
Zdravím,
mám v aplikaci kterou vyvíjím tři různá prostředí:
- localhost (debug mode, samostatná db)
- beta.example.com (potřebuji povolit debug mode a používat speciální db)
- example.com (produkční verze)
K tomu mám 3 konfigurační soubory:
- config.local.neon
- config.beta.neon
- config.neon
Problém je, že nevím, jak nette vysvětlit, co má kdy použít. Problém je hlavně u beta.example.com. Při autodetekci, to spadne do config.neon, když zapnu debug mode spadne do config.local.neon. V obou případech to ignoruje config.beta.neon.
Detekuji, že jsem na beta.example.com a teď potřebuji vědět, jak říct nette, že má použít nastavení z config.beta.neon.
<?php
require __DIR__ . '/../vendor/autoload.php';
$configurator = new Nette\Configurator;
$configurator->enableDebugger(__DIR__ . '/../log');
$configurator->setTempDirectory(__DIR__ . '/../temp');
$configurator->createRobotLoader()
->addDirectory(__DIR__)
->addDirectory(__DIR__ . '/../libs')
->register();
$enviroment = Enviroment::getEnviroment(); // detekuje prostredi, ale nevím, jak ho predat dal.
$configurator->addConfig(__DIR__ . '/config/config.neon');
$configurator->addConfig(__DIR__ . '/config/config.beta.neon');
$configurator->addConfig(__DIR__ . '/config/config.local.neon');
$container = $configurator->createContainer();
return $container;
?>
- David Grudl
- Nette Core | 8116
Prostě volej ty jednotlivé addConfig jen když splněná určitá podmínka. Takhle se ti načtou vždycky všechny tři nezávisle na prostředí.
- Michal Hlávka
- Člen | 190
Můžeš si oddělit prostředí podle remote_addr
nebo taky
podle toho, jestli jeden z těch tří souborů v aplikaci existuje, nebo
taky podle…
Editoval emptywall (18. 7. 2016 14:22)
- CZechBoY
- Člen | 3608
Jak psal @DavidGrudl
if ($_SERVER['HTTP_HOST'] === 'beta.example.com') {
$configurator->addConfig(__DIR__ . '/config/config.beta.neon');
} elseif (strpos($_SERVER['HTTP_HOST'], 'localhost') !== false) {
$configurator->addConfig(__DIR__ . '/config/config.local.neon');
} else {
$configurator->addConfig(__DIR__ . '/config/config.production.neon');
}