Votre site Magento est chez un hébergeur mutualisé, celui-ci est passé en PHP 5.3 sans crier gare, et plus rien ne fonctionne ?
Pas de panique. Sans aller jusqu'à dire que c'est normal, le problème est connu, et en cours de correction si ca n'est déjà fait. Ces erreurs viennent du fait que certains tronçons de Magento doivent avoir été produits il y'a un certain temps et font l'usage de fonctions PHP ou de syntaxes dépréciées.
Cela dit, si l'urgence se fait sentir, ou que vous ne pouvez vous permettre une montée de version, voilà comment résoudre le problème :
Dans "/lib/Varien/Object.php" à la ligne ~ 484, remplacer la déclaration de méthode suivante, dont la syntaxe n'est plus tolérée :
Par :
Enfin, ajoutez la méthode suivantes juste après __invoke, afin de garantir un bon fonctionnement en cas d'appel direct à la méthode __toString :
Ensuite, il faut partir à la chasse des appels à la fonction "split", qui est dorénavant interdite, pour les remplacer par la fonction "explode" qui fonctionne exactement de la même manière.
Exemple : dans "/app/code/core/Mage/Core/Controller/Request/Http.php" à la ligne 274
Remplacer :
Par :
Il y'a plusieurs occurences de "split" à remplacer, mais attention, n'utilisez pas de remplacement massifs, vous risqueriez de remplacer aussi des occurences aux fonctions "preg_split" et "str_split" qui sont toutes deux utilisées dans le core de Magento et qui restent valides.
De plus, n'oubliez pas de vérifier aussi vos modules Magento locaux !
Une fois ces modifications effectuées, votre configuration Magento devrait être à nouveau fonctionnelle.
NOTE : Ces modifications altèrent le core de Magento (en particulier "/app/code/core" et "/lib"), il est donc fortement déconseillé d'opérer directement en production.






Bonne nouvelle, Yoav Kutner a annoncé sur son twitter que magento 1.4.0.0-alpha2 est compatible avec PHP 5.3. Il ne reste plus qu'à attendre à ce que cette version soit stable.
J' ai suivi vos conseils, j' ai une erreur qui semble provenir de la modification du code et qui apparâit dans les sous-catégories du front-end:
Fatal error: func_get_arg(): Can't be used as a function parameter in C:\wamp\www\magento\lib\Varien\Object.php on line 491
Poster un nouveau commentaire