Nový configurator a chybná detekce isProductionMode() při cronu
- Tomáš Votruba
- Moderator | 1114
EDIT: Vyřešeno upgradem Nette 2.0 z 2011–12–09 na 2012–01–04.
Jak uvádí info pro nový configurator vývojářský režim se detekuje jen pro IP adresu 127.0.0.1. Bohužel potkávám jiný stav.
S Nette se starším configuratorem mi naprosto stejné nastavení cronu (spouštěné stejným hostingem, stejnými podmínkami…) funguje bez problémů. Proto je brouk zřejmě v configuratoru novém.
Pro běžný chod stránek (url přístup) není problém, když zasáhne ale cron spouštěný hostingem, nastává problém chybné detekce produkčního módu. Zde jsou indicie:
public function actionCron() {
var_dump($_SERVER["REMOTE_ADDR"]); // *...179
var_dump($_SERVER["SERVER_ADDR"]); // *...179
$productionMode = $this->context->parameters["productionMode"];
var_dump($productionMode); // FALSE
var_dump(Debugger::$productionMode); // FALSE
// ...
}
Jak to řešit?
Napadá mne hodit do boostrapu jednoduchou detekci, ale nebylo špatné to
fixnout nebo udělat správně (jestli něco přehlížím).
if($_SERVER["SERVER_NAME"] != "localhost") {
$configurator->setProductionMode(TRUE);
}
Pro upřesnění: Nette Framework (version 2.0-dev released on
2011–12–09)
[Zkusím ještě použít aktuální verzi na Gitu, zda se problém
nevyřeší.]
Editoval Schmutzka (5. 1. 2012 22:53)
- Patrik Votoček
- Člen | 2221
koukám do toho… ctu to po treti… a asi me neco uniká…
var_dump($_SERVER["REMOTE_ADDR"]); // *...179
var_dump($_SERVER["SERVER_ADDR"]); // *...179
// x.x.x.179 != 127.0.0.1 / ::1
- Tomáš Votruba
- Moderator | 1114
@Patrik Votoček: Právě tento aha efekt jsem musel taky překonat. Tyto hodnoty mi to opravdu psalo.
@hrach: Jj, url. Nicméně předtím mi stejný způsob na Nette 2.0 ze 2011–07–13 šel. Upgrade na současnou verzi to vyřešil, takže zřejmě dávno fixnutý bug.
Vyřešeno. Díky.
Editoval Schmutzka (5. 1. 2012 22:56)