Načtení config.neon v bootstrapu testu
- petr.pavel
- Člen | 535
Ahoj lidi,
začínám s unit testováním a pokouším se po vzoru /tests v Nette rozjet
vlastní.
Protože chci využívat služby/továrny a autowiring DI kontejneru, potřebuji v bootstrapu testu kontejner vyrobit podle config.neon. Jenže to, co mi při běžném chodu aplikace funguje, mi při volání „bokem“ config compiler odmítá s chybou
G:\>php.exe "pokus.php" -p php-cgi.exe
PHP Fatal error: Uncaught exception 'InvalidStateException' with message
'Found sections 'common', 'production', 'development' in configuration, but corresponding extensions are missing.' in G:\adresar\libs\Nette\Config\Compiler.php:115
Tohle je můj pokus.php:
require dirname(__FILE__) . '/../../libs/Nette/loader.php';
$configurator = new NConfigurator;
$configurator->setTempDirectory(dirname(__FILE__) . '/../../temp');
$configurator->addConfig(dirname(__FILE__).'/../../app/config/config.neon', false);
$container = $configurator->createContainer();
Config vám podle mě ukazovat nemusím. Jak říkám, při normálním spuštění aplikace přes prohlížeč vše funguje, bootstrap aplikace je běžný ze sandboxu.
Ve fóru jsem narazil na pár vláken, kde diskutující přesně takovýhle postup doporučovali, třeba kvůli připojení k db mimo Nette s použitím konfigurace v config.neon.
Nechápu, co je u mě jinak. Nette s prefixy, 2.0.3, cache promazána.
Editoval petr.pavel (7. 5. 2012 14:14)
- Jan Jakeš
- Člen | 177
Používáš konfigurační sekce, ale přitom je při načítání konfiguračního souboru vypínáš parametrem false. Viz. https://api.nette.org/…gurator.html#…, neboli:
$configurator->addConfig(dirname(__FILE__).'/../../app/config/config.neon');
- petr.pavel
- Člen | 535
Ajta! Máš pravdu, díky.
Myslel jsem, že vypínám produkční režim (k tomu slouží konstanta, už vím).