Performances Magento avec PHP 7

Les performances Magento ont toujours été un problème récurrent pour les développeurs et les webmasters. Mais PHP 7 est maintenant sorti et je vous conseille de l’utiliser rapidement, les résultats sont impressionnants !

Introduction

La communauté PHP attendait après depuis des mois et PHP 7 est maintenant sorti en version stable. Cela signifie que vous pouvez d’ores et déjà l’utiliser sur vos applications PHP. Je ne vais pas m’attarder sur les nouvelles fonctionnalités mais plutôt sur son utilisation avec Magento.

Magento est basé sur son propre framework sui lui-même est basé sur le Zend Framework, ce qui signifie que chaque requête va utiliser des centaines de fichiers PHP et de lignes de code. Cela a toujours été un problème et vous avez peut-être d’ailleurs déjà essayé toutes les améliorations possibles telles que du Full Page Cache, la compilation Magento, le peaufinage des configurations PHP et cache d’opcode, Varnish ou bien n’importe quel autre moyen de soulager votre Magento si gourmand en ressources. Il est toujours intéressant d’utiliser ces solutions mais vous pouvez maintenant imaginer utiliser PHP 7 très bientôt. J’ai fait quelques tests basiques avec PHP 5.5, PHP 5.6 et PHP 7 sur une installation Magento 1.9.2.0 avec les données de démo. Les résultats sont bluffants !

Benchmarking Magento 1.9 et PHP 7 (avec les données de démo)

J’ai effectué les tests sur mon MacBook Pro personnel depuis le terminal. Le détail de la configuration hardware a peu d’importance puisque les tests sont tous réalisés sur la même base. J’ai appelé toutes les URLs du store Magento 5 fois via des requêtes cURL et cela pour chaque version de PHP.

Voici le résultat :

PHP 5.5

Voir les données

PHP 5.6

Voir les données

PHP 7.0

Voir les données

Faire vos propres tests

Une incompatibilité mineure doit être corrigée dans le code source Magento pour pouvoir utiliser PHP 7.

Vous devez modifier le fichier app/code/core/Mage/Core/Model/Layout.php à la ligne 555:

Modifiez la ligne pour qu’elle ressemble à ceci :

$this->getBlock($callback[0])->{$callback[1]}();

Conlusion

PHP 7 est maintenant disponible et peut être utilisé sur un environnement de production. Cette nouvelle version va révolutionner l’usage de PHP et de ses applications. J’ai hâte de la tester avec Magento 2 ;)

10 réponses à “Performances Magento avec PHP 7”

  1. Miguel dit :

    How did you installed Magento with PHP7? Is there any VM you used?

  2. Werfu dit :

    You should try to benchmark the latest HHVM version too. Quite a lot of effort have been put into HHVM to be able to run Magento without a hitch and I can say that most of the time it work flawlessly!

  3. Francis Kim dit :

    Interested to know if it ran out of the box! But thank you for this post.

  4. Craig Carnell dit :

    Unfortunately you cannot login to the /admin system with PHP 7.0 RC1. Any ideas how to fix this?

  5. Bryan Veloso dit :

    Awesome performance! Can’t wait to try it in my remote server. :D

  6. Azaz dit :

    I also saw some benchmarks of PHP 7 and PHP 5.6 on cloud servers. The numbers were really impressive. Here is that post I was talking about: http://www.cloudways.com/blog/configure-magento-with-php-7/

  7. Lars dit :

    The server was updated to PHP 7, and then I couldn’t get access to my website. I changed the line:
    $out .= $this->getBlock($callback[0])->$callback[1]();
    to:
    $out .= $this->getBlock($callback[0])->{$callback[1]}();
    in the file « app/code/core/Mage/Core/Model/Layout.php »

    Now the website is working – NICE….
    BUT…
    Now I can’t login to the backend.
    Every time I try it doesn’t give me an error, just this:
    mysite.com/index.php/admin/index/index/key/ »And then alot of numbers »/

    If I type in the wrong password it will return with following:
    « Invalid User Name or Password. »

    So it seems like it knows I type the correct user and password, but for some reason will not let me in.

    Can someone tell me how to fix this problem, so I can get into the backend of my website? Please! thanks.

Laisser un commentaire

* Champs requis

Categories