Nepravidelné selhání loaderu. Fatal error: Class * not found
- mystik
- Člen | 312
Nette: 0.9 pro PHP 5.2
PHP: 5.3.3
V poslední době jsme několikrát narazili na problém, že Nette classy nejsou po include Nette přes loader dostupné. Problém se vyskytuje vždy výjimečně a nikdy se neopakoval znovu po reloadu a odeslání stejného požadavku znovu.
Při inicializaci aplikace je vloženo Nette pomocí
<?php
require_once('ext_libs/Nette/loader.php');
?>
O několik řádků níže je includován soubor obsahující použití Nette
<?php
$nette_mode = Debug::DEVELOPMENT;
?>
Na tomto řádku se ale zobrazí chyba:
Fatal error: Class ‚Debug‘ not found in *** on line ***
Editoval mystik (30. 11. 2010 12:07)
- jtousek
- Člen | 951
Pro 5.2 existují dvě verze. Pokud máš prefixovanou tak použij:
<?php
$nette_mode = NDebug::DEVELOPMENT;
?>
Pokud máš neprefixovanou tak je chyba někde jinde.
A mimochodem, když už máš k dispozici PHP 5.3.3, vřele doporučuji použít Nette pro PHP 5.3. Je obecně preferovaná.
//EDIT: Nemáte náhodou PHP 5.3.0 nebo 5.3.1? Mám pocit, že tehdy byl přímo v PHP bug, o kterém mluvíš. Taky jsem na něj před nějakou dobou narazil.
Editoval jtousek (30. 11. 2010 12:14)
- mystik
- Člen | 312
jtousek napsal(a):
Pro 5.2 existují dvě verze. Pokud máš prefixovanou tak použij:
<?php $nette_mode = NDebug::DEVELOPMENT; ?>
Pokud máš neprefixovanou tak je chyba někde jinde.
A mimochodem, když už máš k dispozici PHP 5.3.3, vřele doporučuji použít Nette pro PHP 5.3. Je obecně preferovaná.
//EDIT: Nemáte náhodou PHP 5.3.0 nebo 5.3.1? Mám pocit, že tehdy byl přímo v PHP bug, o kterém mluvíš. Taky jsem na něj před nějakou dobou narazil.
Používáme neprefixovanou verzi. Vše funguje bez problému až na několik výjimečných případů (3 za poslední dva týdny).
Používáme Zend Server s PHP 5.3.3. Pro jistotu jsem to zkontroloval ještě přes phpinfo.