- Ymox,
Avant toute chose, vérifiez plusieurs points
Est-ce un problème purement Symfony ou de PHP plus généralement, voire de configuration serveur ?
Impossible d’installer Symfony parce qu’il manque OpenSSL ? Impossible d’utiliser correctement la ligne de commandes parce que date.timezone
n’est pas défini, ou que cURL vous fait des misères ? Vous pourrez probablement trouver votre bonheur dans l’un ou l’autre tutoriel (notamment celui sur WAMP et la partie d’utilisation en ligne de commandes), voire dans la FAQ PHP
Avez-vous vérifié que le serveur qui pose problème est configuré correctement pour votre version de Symfony ?
Il suffit d’installer le paquetage symfony/requirements-checker
, de suivre les instructions de la documentation, et il vous sera indiqué si certains paramètres ne sont pas corrects, s’il manque des extensions de PHP, etc. Sur votre propre serveur, vous pourrez très probablement régler ces soucis vous-même, tandis que chez un hébergeur, il vous faudra passer par le support et être persuasif.
Avez-vous la même configuration en ligne de commandes et avec votre serveur web ?
Si vous avez plusieurs versions de PHP sur votre machine, vous avez très probablement configuré l’une d’elles pour qu’elle soit accessible en ligne de commandes, et une autre avec votre serveur. Utiliser PHP 7 en ligne de commandes (et donc composer…) et PHP 5 avec le serveur peut faire installer des dépendances qui ne sont pas compatibles avec la version du serveur.
Vérifiez aussi les paramètres pour PHP en ligne de commandes et ceux pour PHP du serveur. Les fichiers php.ini
n’étant pas les mêmes, vous pourriez passer du temps à regarder un fichier correct, mais utilisé que par une des deux versions… Plus d’informations dans la FAQ PHP
Avez-vous nettoyé le cache ?
Certains changements ne peuvent être pris en compte que si celui-ci est vidé. Citons entre autres la création d’un nouveau catalogue pour l’environnement de développement, et pour l’environnement de production, ce sont (en plus) tous les changements liés aux templates, aux mappings et aux assets.
Notez aussi que parfois il faut supprimer le cache à la main.
Avez-vous regardé s’il y avait des erreurs mentionnées dans les différents onglets du profileur fourni avec Symfony ?
Le profileur indique des soucis de mapping, par exemple, quand les relations ne sont pas correctes, mais pas au point de bloquer l’application. Particulièrement sournois, parce que si le problème vient d’une entité qui n’est pas directement utilisée, vous pouvez passer à côté un moment…
Avez-vous vérifié les logs de l’application ?
Les applications Symfony écrivent plein d’informations dans des fichiers dev.log
, prod.log
et prod.deprecations.log
, tous dans le dossier /var/log
du projet. Prenez le temps de vider ces fichiers de temps à autre, mais plus particulièrement quand vous avez une erreur, et donc vider juste avant de refaire ce qui pose problème, pour avoir des informations fraîches et ciblées.
Avez-vous lu et compris le message d’erreur ?
Les développeurs de Symfony ont fait de gros efforts pour que les messages d’erreur soient le plus parlant possible, et fournissent même avec eux des pistes. Prenez donc le temps de lire l’entier du message d’erreur et de le traduire au besoin. Ce n’est pas parce que les messages sont de plus en plus clairs qu’il ne faut plus faire d’effort de compréhension
Avez-vous bien comparé le code de l’exemple que vous suiviez avec le vôtre ?
Beaucoup de fautes surviennent parce que le code a été recopié (quand ce n’est pas directement copié-collé…) sans faire attention aux noms de variables qui changent.
Avez-vous lu des informations pour votre version de Symfony ?
Depuis le temps que Symfony existe, il y a beaucoup de scripts "tout prêts" qui se trouvent sur Internet. Mais ils ne sont pas tous pour la version de Symfony que vous utilisez. A vous de faire attention
N’avez-vous pas loupé une étape ?
Il est relativement facile de louper un paragraphe quand on lit un tutoriel et qu’on bidouille son code à côté. Reprenez calmement les différentes étapes expliquées sans vous préoccuper de votre code. Ce que vous avez oublié devrait vous apparaître comme « Tiens, je ne me souvenais pas de ça… ».
Avez-vous bien installé des dépendances qui vont avec votre version de Symfony ?
Là aussi, vous pouvez trouver des indications sur des dépendances qui ne sont pas compatibles avec votre version de Symfony. De manière générale, vérifiez sur le site originel si ce que vous souhaitez est encore maintenu et quelle version est nécessaire pour votre version de Symfony.
Avez-vous pris le temps de chercher ?
Vous êtes ici, c’est déjà bien !
Mais si vous ne trouvez pas votre bonheur ici, cela ne veut pas dire que personne n’a eu le problème avant vous. Ce site n’est pas le centre d’Internet. Vos moteurs de recherche favoris peuvent vous aider, ainsi que ce tutoriel au besoin.
Si après avoir vérifié ces points et lu tout ce qui figure ici vous n’avez rien trouvé qui vous paraisse concluant, alors vous pouvez ouvrir un autre sujet.
En effet, les demandes d’aide qui seraient écrites dans ce sujet se verraient masquées, voire supprimées. Non seulement elles ne seront plus visibles, mais en plus elles pollueraient le sujet. Rappelez-vous : une FAQ est un endroit où certes il y a des questions, mais celles-ci surviennent régulièrement et figurent ici avec leur réponse.
Pour mieux vous aider (ainsi que ceux qui vous aident ou ceux qui auraient le même problème que vous), utilisez les tags symfony
ET celui de la version, limitée à son nombre le plus significatif — premier pour des soucis "généraux" (symfony 3
), second pour des soucis propres à une version mineure (symfony 3.2
), ceci tant que quelque chose comme expliqué dans ce message soit mis en place.
Quelques exemples en live :
Trêve de blabla, voici ce que vous pourrez trouver ici