Cómo formatear un archivo PHP

Pega un fragmento o un archivo completo y pulsa Formatear código PHP. La sangría se reescribe con un tabulador por nivel dentro del navegador; el código nunca se ejecuta, no se genera ninguna salida y no se sube nada.

El resultado conserva los tramos que son texto literal y no código: el cuerpo de un heredoc o nowdoc, un comentario # o //, y el HTML que hay entre un ?> de cierre y la siguiente etiqueta de apertura. Esas zonas vuelven byte a byte, que es justo lo que necesita una plantilla, porque una sangría añadida ahí cambia la página renderizada.

  1. Pega el PHP sobre el código de ejemplo del campo superior; un fragmento, una clase o un archivo de plantilla completo funcionan igual.
  2. Pulsa Formatear código PHP. El resultado aparece debajo, coloreado con la gramática de PHP en lugar de texto plano.
  3. Pulsa Copiar para llevar el código sin colores al portapapeles, o selecciona líneas sueltas del resultado si solo necesitas unas pocas.
  4. Edita el campo y vuelve a formatear si algo no encaja: hasta que lo hagas, el resultado anterior se atenúa y se marca como perteneciente a la entrada previa.

Qué cambia el formateador y qué deja intacto

Qué cambia el formateador

Cada sentencia escrita en una sola línea se parte en su punto y coma, las llaves pasan a su propia línea y cada nivel de anidamiento recibe un tabulador más. Así una clase minificada se vuelve legible, y a cambio la salida ya no coincide línea a línea con la entrada: se eliminan las líneas en blanco, la sangría siempre es con tabuladores y un array o una lista de argumentos larga se queda en una sola línea en vez de reajustarse. Un proyecto con cuatro espacios necesita después una pasada con su propio formateador.

Lo que se copia sin cambios

El cuerpo de un heredoc o nowdoc es salida literal, así que se copia byte a byte, incluido el marcador de cierre indentado que PHP admite desde la versión 7.3. Los comentarios de línea que empiezan por # o // se tratan como comentarios y no como llaves, lo que importa en un bloque del tipo # ver la sintaxis {placeholder}, y un atributo de PHP 8 como #[Route('/x')] sigue tratándose como código porque un atributo no abre un comentario. El texto entre ?> y el siguiente <?php pertenece al HTML y nunca se resangra, de modo que un bucle de plantilla foreach (...): con un <?= ... ?> dentro vuelve con su marcado intacto.

Dónde se queda corta

El formateador lee caracteres, no un árbol sintáctico: nunca ejecuta el código, nunca comprueba la sintaxis, y una llave sin cerrar o una comilla sin cerrar vuelven tal como se escribieron en lugar de dar un error. El coloreado se aplica después del formato y, a partir de unos 120 KB, se omite para que la página siga respondiendo, así que un archivo grande se ve legible pero sin color. Para algo más que un repaso rápido, php-cs-fixer, PHP_CodeSniffer o el formateador del editor respetan el estilo y las líneas en blanco de un proyecto real, y se pueden aplicar a todo el árbol en vez de a un pegado.

Herramientas recientes: