Nette 2.1 jak spustit laděnku / productionMode
- motorcb
- Člen | 552
Zdravim. Nasledujicim kodem spoustim laděnku/produkcni mod na zvolenou IP
adresu.
Jak toto nastaveni provedu v Nette 2.1?
$configurator = new Nette\Config\Configurator;
$prod = $configurator->detectProductionMode(array("xxx.xxx.xxx.x"));
$configurator->addParameters(array(
"environment" => $prod ? $configurator::PRODUCTION : $configurator::DEVELOPMENT,
"productionMode" => $prod
));
V Nette 2.1 mi tento kod vrací nasledujici chybu:
Deprecated: Nette\Config\Configurator::detectProductionMode() is
deprecated; use !detectDebugMode() instead. in
- motorcb
- Člen | 552
Tak s depricated funkci jsem nahradil doporucovanou funkci detectDebugMode:
$prod = $configurator->detectDebugMode(array("xxx.xxx.xxx.xxx"));
$configurator->addParameters(array(
"environment" => $prod ? $configurator::PRODUCTION : $configurator::DEVELOPMENT,
"productionMode" => $prod
));
$prod mi vrací true. Ale stále se nezobrazuje laděnka – stále je mi zobrazována stránka:
Server Error
We're sorry! The server encountered an internal error and was unable to complete your request. Please try again later.
error 500
Nevěděl by někdo jak na to? V Nette 2.1?
- Šaman
- Člen | 2666
Jestli $prod
je TRUE
, tak
"productionMode" => TRUE
, takže žádná laděnka.
Prostě se změnila logika, standardní režim je produkční a ty si
můžeš definovat podmínky, kdy se běží v debug. Předtím to bylo naopak.
Takže dej před to $configurator->detectProductionMode(..)
vykřičník a máš to stejné jako předtím. Anebo přepiš ty proměnné a
podmínky.
Editoval Šaman (11. 5. 2013 13:27)
- motorcb
- Člen | 552
Šaman:
Díky za tip :-)
Dal jsem před funkci vykřičník:
$prod = !$configurator->detectDebugMode(array("xxx.xxx.xxx.xxx"));
$configurator->addParameters(array(
"environment" => $prod ? $configurator::PRODUCTION : $configurator::DEVELOPMENT,
"productionMode" => $prod
));
Ovšem laděnka se stále nespouští :-(
Stále chyba:
Server Error
We're sorry! The server encountered an internal error and was unable to complete your request. Please try again later.
error 500
Cache jsem promazal
- Jan Tvrdík
- Nette guru | 2595
@motorcb: Achjo, co takhle zkontrolovat logy, zda mají složky temp a log správná oprávnění apod?
A správně by to mělo být takto:
$prod = !$configurator->detectDebugMode(array("xxx.xxx.xxx.xxx"));
$configurator->addParameters(array(
"environment" => $prod ? $configurator::PRODUCTION : $configurator::DEVELOPMENT,
"productionMode" => $prod,
"debugMode" => !$prod,
));
Navíc $configurator::PRODUCTION
a
$configurator::DEVELOPMENT
jsou taky deprecated.
- motorcb
- Člen | 552
Tak mám opět problém s laděnkou pro nejnovější Nette 2.1dev (stažené přes composer).
Laděnku spouštím tímto způsobem:
$prod = !$configurator->detectDebugMode(array("xx.xx.xx.xx"));
$configurator->addParameters(array(
"environment" => $prod ? $configurator::PRODUCTION : $configurator::DEVELOPMENT,
"productionMode" => $prod,
"debugMode" => !$prod,
));
A spuštění končí chybou:
Nette\MemberAccessException
Call to undefined method Nette\PhpGenerator\ClassType::addExtend().
Koukal jsem do dokumentace, kde jsem našel:
$configurator->setDebugMode(TRUE);
Ovšem tento příkaz také nefunguje a končí stejnou chybou jako první příkaz.
Co dělám špatně a a jak bych měl správně zapínat laděnku pro Nette 2.1?