Comment formater un fichier PHP

Collez un extrait ou un fichier entier puis cliquez sur Formatage du code PHP. L'indentation est réécrite dans le navigateur avec une tabulation par niveau ; le code n'est jamais exécuté, aucune sortie n'est produite et rien n'est envoyé.

Le résultat conserve les passages qui sont du texte littéral et non du code : le corps d'un heredoc ou d'un nowdoc, un commentaire # ou //, et le HTML situé entre un ?> fermant et la balise ouvrante suivante. Ces zones reviennent octet pour octet, ce dont un template a besoin, car une indentation ajoutée à cet endroit change la page rendue.

  1. Collez le code PHP par-dessus l'exemple du champ ci-dessus ; un fragment, une classe ou un fichier de template complet fonctionnent de la même façon.
  2. Cliquez sur Formatage du code PHP. Le résultat apparaît en dessous, coloré avec la grammaire PHP plutôt qu'en texte brut.
  3. Cliquez sur Copier pour placer le code sans couleurs dans le presse-papiers, ou sélectionnez quelques lignes du résultat si vous n'en avez besoin que d'une partie.
  4. Modifiez le champ et relancez le formatage si quelque chose cloche : jusque-là, le résultat précédent est atténué et signalé comme correspondant à la saisie antérieure.

Ce que le formateur modifie et ce qu'il laisse intact

Ce que le formateur modifie

Chaque instruction écrite sur une seule ligne est coupée à son point-virgule, les accolades passent sur leur propre ligne et chaque niveau d'imbrication gagne une tabulation. Une classe minifiée devient lisible, et en contrepartie la sortie ne correspond plus ligne à ligne à l'entrée : les lignes vides disparaissent, l'indentation se fait toujours par tabulations, et un tableau ou une liste d'arguments longue reste sur une seule ligne au lieu d'être repliée. Un projet qui utilise quatre espaces a besoin ensuite d'un passage avec son propre formateur.

Ce qui est copié sans modification

Le corps d'un heredoc ou d'un nowdoc est une sortie littérale : il est copié octet pour octet, y compris la balise de fin indentée autorisée depuis PHP 7.3. Les commentaires de ligne commençant par # ou // sont traités comme des commentaires et non comme des accolades, ce qui compte pour un bloc du type # voir la syntaxe {placeholder}, et un attribut PHP 8 comme #[Route('/x')] reste du code, car un attribut n'ouvre pas de commentaire. Le texte entre ?> et le prochain <?php appartient au HTML et n'est jamais réindenté : une boucle de template foreach (...): contenant un <?= ... ?> revient avec son balisage intact.

Où l'outil s'arrête

Le formateur lit des caractères, pas un arbre syntaxique : il n'exécute jamais le code, ne vérifie pas la syntaxe, et une accolade ouverte ou un guillemet manquant revient tel qu'écrit au lieu de produire une erreur. La coloration vient après la mise en forme et, au-delà d'environ 120 Ko, elle est ignorée pour que la page reste réactive : un gros fichier reste lisible mais en une seule couleur. Au-delà d'un simple nettoyage, php-cs-fixer, PHP_CodeSniffer ou le formateur de l'éditeur respectent le style et les lignes vides d'un vrai projet et s'appliquent à toute l'arborescence plutôt qu'à un copier-coller.

Outils récents :