Nepravidelné selhání loaderu. Fatal error: Class * not found

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
mystik
Člen | 295
+
0
-

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
+
0
-
<?php
$nette_mode = Nette\Debug::DEVELOPMENT;
?>
mystik
Člen | 295
+
0
-

jtousek napsal(a):

<?php
$nette_mode = Nette\Debug::DEVELOPMENT;
?>

Pardon uvedl jsme omylem špatnou verzi. Trochu nedorozumění v týmu :-) Již jsme to napravil.

jtousek
Člen | 951
+
0
-

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 | 295
+
0
-

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.

jtousek
Člen | 951
+
0
-

Tak jako tak, není to chyba, která by měla něco společného s Nette. Zkus hledat jinde.

mystik
Člen | 295
+
0
-

Tak chyba opravdu není v Nette. Vyskytla se i u aplikací nepoužívajících Nette. Povedlo se nám zjistit, že se začala objevovat v souvislosti s přechodem na novou verzi Zend serveru 5.0.3