Magento 1.3.3 : Résoudre le problème de compatibilité de Magento avec PHP 5.3

http://www.soft-alternative.com/usr/images/tutoriaux/magento-133-resoudre-le-probleme-de-compatiblite-de-magento-avec-php-53/magento-133-resoudre-le-probleme-de-compatiblite-de-magento-avec-php-53.jpg

Présentation

Il peut arriver que l'on soit amené à effectuer une migration d'une installation existante de Magento CE 1.3.3 sur un nouveau serveur. Un problème de compatiblité entre Magento et le module PHP du serveur peut se poser dans le cas où la version de celui-ci est supérieure à la 5.2. Ce problème se manifeste généralement par le message d'erreur "Method Varien_Object::__tostring() cannot take arguments in Magento". La solution communiquée par l'éditeur de Magento pour résoudre ce problème consiste à modifier la syntaxe de certaines fonctions afin de les rendre compatible avec le PHP 5.3 et supérieur.

Procédure

  1. Editer le fichier "Object.php" dans le dossier "lib/Varien/".

  2. Renommer la fonction "__toString(...)" en "__invoke(...)" à la ligne 484 du fichier.

    Fonction à renommer :
    • public function __toString(array $arrAttributes = array(),$valueSeparator=',')
    Nouveau nom :
    • public function __invoke(array $arrAttributes = array(),$valueSeparator=',')
  3. Editer ensuite le fichier "Http.php" dans le dossier "app/code/core/Mage/Controller/Request/".

  4. Modifier la syntaxe dans la fonction "getHttpHost(...)" à la ligne 274.

    Syntaxe à modifier :
    • $host = split(?:?, $_SERVER['HTTP_HOST']);
    Nouvelle syntaxe :
    • $host = explode(?:?, $_SERVER['HTTP_HOST']);