Comment résoudre l’exception Symfony 5 lors du rendu d’un modèle « Unimplemented date character « Y » in format « MMMM dd Y »

En migrant de PHP 7.4.8 à PHP 7.4.11 dans mon environnement Xampp, cela m’a obligé à installer la nouvelle version et à déplacer tous les projets de l’ancien répertoire vers le nouveau. je n’ai pas copié le même fichier de configuration php.ini dans la nouvelle version car je pensais que cela fonctionnerait comme prévu sans trop de tracas. Eh bien, non ?. Lorsque j’ai démarré le projet, l’exception suivante est apparue sur la page d’accueil :

Une exception a été levée lors du rendu d’un modèle (« Caractère de date non implémenté « Y » au format « MMMM dd Y ». Veuillez installer l’extension « intl » pour des capacités de localisation complètes. »).

Cela a commencé à se produire après l’implémentation du paquet twig/intl-extra sur le projet. Heureusement, la solution est assez simple dans n’importe quel environnement, car tout comme l’erreur le décrit, il vous suffit d’installer/activer l’extension intl de PHP.

PHP avec Xampp pour Windows

Si vous utilisez PHP sous Windows, vous utiliserez probablement XAMPP. Vous pouvez facilement corriger cette erreur en modifiant le fichier de configuration par défaut php.ini situé dans le répertoire PHP de xampp :

; c:/xampp/php/php.ini
; enlever le ; intl extension pour activer le module intl
extension=intl

Après avoir décommenté la ligne (enlevez simplement le point-virgule au début de la ligne), le module devrait maintenant être actif. Il vous suffit de redémarrer les services Apache et MySQL et cela fonctionnera maintenant :

PHP sur Ubuntu

Si vous travaillez directement sur le serveur Ubuntu, vous pouvez installer l’extension intl dans le terminal. Comme d’abord, mettez à jour le référentiel :

Ensuite, selon la version PHP du serveur, vous pouvez l’installer avec les commandes suivantes :

# si vous utiliser la version PHP 5.6
sudo apt-get install php5.6-intl

# si vous utiliser la version 7.0
sudo apt-get install php7.0-intl

# si vous utiliser la version PHP 7.4
sudo apt-get install php7.4-intl

Après avoir installé le module, n’oubliez pas de redémarrer Apache :

sudo service apache2 restart

Et voilà le problème devrait disparaître . FINI ! amusez-vous bien !