Magento sous PHP 5.4 Webserver - fatal: getFrontNameByRoute () sur un non-objet

14

Quelqu'un a-t-il réussi à faire fonctionner Magento sous PHP 5.4 avec le serveur Web intégré ? J'ai utilisé le HTRouter PHAR pour imiter les règles .htaccess - mais jusqu'à présent, je suis vide, toutes les routes mènent actuellement à

Fatal error: Call to a member function getFrontNameByRoute() on a non-object

philwinkle
la source
Magento 1.7.x fonctionne bien sur PHP 5.4.14 sur Apache en tant que php_mod ou PHP_FPM, les a essayés tous les deux sur une VM exécutant Ubuntu. Quant au serveur intégré, celui que je n'ai pas encore essayé.
Petar Dzhambazov

Réponses:

11

J'ai donc jeté un coup d'œil à ce sujet et l'ai fait fonctionner assez facilement.

Instructions pour Debian

cat >> /etc/apt/sources.lst <<EOF
deb http://packages.dotdeb.org squeeze-php54 all
deb-src http://packages.dotdeb.org squeeze-php54 all
EOF

wget -qO - http://www.dotdeb.org/dotdeb.gpg | apt-key add -
apt-get update
apt-get install php5-cli php5-mysqlnd php5-mcrypt php5-common php-pear php5-dev php5-mysql php5-curl php5-mcrypt php5-gd php5-cli php5-xsl php5-imagick

Ensuite, j'ai fait un simple routeur (au lieu d'utiliser HTRouter), qui imitait les règles dans un stock Magento .htaccess

<?php

  if (preg_match('#^/api/rest#', $_SERVER["REQUEST_URI"])) {
      $_SERVER["REQUEST_URI"] = 'api.php?type=rest';
  } elseif (preg_match('#^/(media|skin|js)#', $_SERVER["REQUEST_URI"])) {
      return false;
  } elseif (file_exists(".".$_SERVER["REQUEST_URI"]))  {
      return false;
  } else {
      include_once 'index.php';
  }

?>

Puis a démarré le serveur PHP et l'a pointé vers router.php(le fichier d'en haut).

php -S 172.16.0.249:80 router.php

Fonctionne très bien :)

Contenu provenant de sonassi.com

Ben Lessani - Sonassi
la source
3

Conformément à la configuration système requise , Magento nécessite "PHP 5.2.13 - 5.3.15".

Magento 2 (la dernière fois que j'ai entendu) ne prend pas encore totalement en charge PHP 5.4… bien qu'il y ait beaucoup de débats sur la nécessité ou non de l'exiger, et son support final est évident.

Certains de ces problèmes de compatibilité proviennent, je crois, de problèmes dans l'implémentation SimpleXML de PHP 5.4: https://bugs.php.net/bug.php?id=62639

Ma conclusion: Restez avec la dernière version de PHP 5.3.x et ne risquez pas d'utiliser un support non officiellement pris en charge

davidalger
la source
Merci pour la réponse rapide - je comprends ce qui est et n'est pas pris en charge; J'essaie de voir si quelqu'un d'autre l'expérimente en ce moment. Trop de temps avec Laravel me donne envie de cette fonctionnalité je suppose ...
philwinkle
ok, donc plus de ce qui a été gâché pour voir si nous pouvons le faire fonctionner ... gotcha.
davidalger
1
C'est plus pour l'expérimentation qu'autre chose - j'ai environ 15 machines virtuelles CentOS et un tas de machines virtuelles passe-partout configurées avec Magento à tous les différents niveaux de CE / EE - je suis juste curieux de savoir comment cela fonctionnerait pour démarrer de nouvelles fonctionnalités / développement. Si vous avez déjà vu en action, Laravel a une démo assez impressionnant où ils git cloneet php -S 0.0.0.0:80et BOOM - application démo. Bien sûr, Magento est une plate-forme au-dessus de Zend et je suis sûr que je pourrais reproduire ce type de démo avec ZF.
philwinkle