Problém nette 2.0-dev pro PHP 5.2 na hostingu s PHP 5.4.3

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

Ahoj, teď mi upgradovali hosting z PHP 5.2.x na PHP 5.4.3 a nějak se mi nedaří tam rozjet původní aplikaci. Hází to úplně strange errors… S min verzí to hlásí:

PHP Fatal error:  Cannot redeclare class CallbackFilterIterator in /usr/home/rcd/libs/Nette/nette.min.php on line 4140

Když použiju stejnou verzi, ale plnou, dostávám úplně jinou chybu:

PHP Fatal error:  Call to undefined method SplFileInfo::isDot() in /usr/home/rcd/libs/Nette/Full/Utils/Finder.php(248) : runtime-created function on line 2

Ještě dodám, že se jedná o verzi 2.0-dev released on 2011–06–03, až do upgradu všechno makalo bez problémů a nerad bych to komplet překopával :-)

iguana007
Člen | 970
+
0
-

Zkus tam spustit Requirements-Checker – třeba při tom upgrade něco zapomněli nahodit (např. nějakou knihovnu, která tam dříve byla).

jtousek
Člen | 951
+
0
-

CallbackFilterIterator je třída které je nová v PHP 5.4. Pokud tehdejší Nette obsahuje třídu s tímto názvem, tak to samozřejmě způsobí chybu.

To druhé je zřejmě chyba Finderu. Očekává že nějaká proměnná bude objekt třídy DirectoryIterator a místo toho jde o objekt třídy SplFileInfo. Nedávno se tu objevil podobný problém kde opět byl objekt typu SplFileInfo ale očekáván byl RecursiveDirectoryIterator. Zda to je opravené netuším, Finder nepoužívám takže jsem to víc nesledoval.

forkman
Člen | 72
+
0
-

Nahozené je tam všechno co má být, ale fakt to je tím, že PHP 5.4 už ty fce má zaintegrované. Takže mi zbývá jedině ty funkce ručně vymazat z Nette, nebo je ještě jiná šance jak to rozjet? Nová verze není totiž moc kompatibilní …

22
Člen | 1478
+
0
-

A upgrade Nette by nepomohl?

jtousek
Člen | 951
+
0
-

Řídil bych se asi podle toho zda s tou aplikací budeš dále pracovat a vyvýjet ji. Pokud ano, zvolil bych tu těžší variantu – upgrade Nette. Pokud ne tak metodou pokus omyl vyřeš kompatibilitu a hotovo.