Using $this when not in object context au passage de Joomla! vers php 7.2.x

Les administrateurs de sites Joomla! ont pu remarquer depuis les dernières mises à jour des notifications indiquant que les versions de php 7.0.x devenaient obsolètes.

Alerte
Votre version de PHP, 7.0.32, ne reçoit en ce moment que des correctifs de sécurité du projet PHP. Cela signifie que votre version de PHP ne sera bientôt plus prise en charge. Nous vous recommandons de planifier la mise à niveau vers une nouvelle version de PHP avant d'atteindre la fin du support le 3/09/18. Joomla sera plus rapide et plus sûr si vous passez à une version plus récente de PHP (PHP 7.x est recommandé). Merci de contacter votre hôte pour obtenir des instructions de mise à niveau.

Il est donc temps de passer à php 7.1.x ou 7.2.x !
En général, ce passage se fait sans encombres, mais il faut bien quelques exceptions pour compliquer un peu les choses et générer quelques sueurs.

Aujourd'hui j'ai pu rencontrer l'erreur fatale (500) Using $this when not in object context en passant de php 7.1.x à 7.2.x, plus aucun accès au frontend !

En faisant quelques recherches, j'ai pu voir que les appels

JSite::getMenu()

dans mon template (qui a déjà un certain vécu) causaient le problème.

Il faut donc remplacer ces appels par :

JFactory::getApplication()->getMenu()

Et le souci est réglé !

BLOG COMMENTS POWERED BY DISQUS