Prettier es un formateador de código obstinado. Impone un estilo consistente al analizar su código y volver a imprimirlo con sus propias reglas que tienen en cuenta la longitud máxima de línea, ajustando el código cuando sea necesario.
Este complemento agrega soporte para el lenguaje PHP a Prettier.
Nota
Este complemento utiliza PSR/PER como guía al tomar decisiones de formato, pero no pretende ser totalmente compatible con PSR/PER. La idea es mantenerse razonablemente cerca de cómo funciona Prettier for JS.
Consideramos que el complemento es estable cuando se formatean archivos PHP puros. El formato de archivos que contienen una combinación de PHP y HTML aún se considera inestable; consulte los problemas abiertos con la etiqueta "inline" para obtener más detalles.
Si desea utilizar el complemento en producción, le recomendamos limitar su alcance a archivos PHP puros.
<?php
array_map ( function ( $ arg1 , $ arg2 ) use ( $ var1 , $ var2 ) {
return $ arg1 + $ arg2 /( $ var + $ var2 );
}, array ( " complex " => " code " , " with " =>
function () { return " inconsistent " ;}
, " formatting " => " is " , " hard " => " to " , " maintain " => true ));
<?php
array_map (
function ( $ arg1 , $ arg2 ) use ( $ var1 , $ var2 ) {
return $ arg1 + $ arg2 / ( $ var + $ var2 );
},
[
" complex " => " code " ,
" with " => function () {
return " inconsistent " ;
},
" formatting " => " is " ,
" hard " => " to " ,
" maintain " => true ,
]
);
¡Puedes probar el complemento en nuestro patio de juegos!
hilo:
yarn add --dev prettier @prettier/plugin-php
# or globally (pending https://github.com/prettier/prettier/issues/15141)
yarn global add prettier @prettier/plugin-php
npm:
npm install --save-dev prettier @prettier/plugin-php
# or globally (pending https://github.com/prettier/prettier/issues/15141)
npm install --global prettier @prettier/plugin-php
Cree o modifique su archivo de configuración más bonito para activar el complemento:
{
"plugins" : [ " @prettier/plugin-php " ]
}
Si instaló prettier como una dependencia local, puede agregar prettier como script en su package.json
.
{
"scripts" : {
"prettier" : " prettier "
}
}
y luego ejecutarlo a través de
yarn run prettier path/to/file.php --write
# or
npm run prettier -- path/to/file.php --write
Si lo instaló globalmente, ejecute
prettier path/to/file.php --write
Este paquete expone un standalone.js
que se puede usar junto con el propio standalone.js
de Prettier para hacer que el complemento PHP funcione en navegadores sin un paso de compilación.
Primero, tome ambos scripts independientes de una CDN de npm como unpkg:
< script src =" https://unpkg.com/prettier/standalone.js " > </ script >
< script src =" https://unpkg.com/@prettier/plugin-php/standalone.js " > </ script >
Luego usa Prettier con PHP, así:
await prettier . format ( YOUR_CODE , {
plugins : prettierPlugins ,
parser : "php" ,
} ) ;
Vea este código en acción en esta demostración básica.
Los paquetes como webpack, Rollup o browserify reconocen automáticamente cómo manejar el complemento PHP. Recuerde que incluso cuando utilice un paquete, deberá utilizar las compilaciones independientes:
import prettier from "prettier/standalone" ;
import * as prettierPluginPhp from "@prettier/plugin-php/standalone" ;
await prettier . format ( YOUR_CODE , {
plugins : [ prettierPluginPhp ] ,
parser : "php" ,
} ) ;
Prettier para PHP admite las siguientes opciones. Recomendamos que todos los usuarios configuren la opción phpVersion
.
Nombre | Por defecto | Descripción |
---|---|---|
phpVersion | "7.0" | Permite especificar la versión de PHP que estás utilizando. Si está utilizando PHP 7.1 o posterior, al configurar esta opción se utilizarán funciones de lenguaje moderno en la salida impresa. Si estás usando PHP inferior a 7.0, tendrás que configurar esta opción o Prettier generará código incompatible. |
printWidth | 80 | Igual que en Prettier (ver documentos más bonitos) |
tabWidth | 4 | Igual que en Prettier (ver documentos más bonitos). El valor predeterminado es 4 según el estándar de codificación PSR-2 . |
useTabs | false | Igual que en Prettier (ver documentos más bonitos) |
singleQuote | false | Si se establece en "true" , se reformatearán las cadenas que utilizan comillas dobles pero que no dependen de las características que agregan. Ejemplo: "foo" -> 'foo' , "foo $bar" -> "foo $bar" . |
trailingCommaPHP | true | Si se establece en true , se agregarán comas al final siempre que sea posible.Si se establece en false , no se imprimen comas al final. |
braceStyle | "per-cs" | Si se establece en "per-cs" , más bonito moverá la llave abierta para los bloques de código (clases, funciones y métodos) a una nueva línea.Si se establece en "1tbs" , más bonito moverá la llave abierta para los bloques de código (clases, funciones y métodos) a la misma línea. |
requirePragma | false | Igual que en Prettier (ver documentos más bonitos) |
insertPragma | false | Igual que en Prettier (ver documentos más bonitos) |
Un comentario // prettier-ignore
excluirá del formato el siguiente nodo en el árbol de sintaxis abstracta.
Por ejemplo:
matrix (
1 , 0 , 0 ,
0 , 1 , 0 ,
0 , 0 , 1
);
// prettier-ignore
matrix (
1 , 0 , 0 ,
0 , 1 , 0 ,
0 , 0 , 1
);
se transformará en
matrix ( 1 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 1 );
// prettier-ignore
matrix (
1 , 0 , 0 ,
0 , 1 , 0 ,
0 , 0 , 1
)
El complemento oficial más bonito para Atom admite complementos.
El complemento oficial más bonito para vscode admite complementos desde la versión 1.10.0. Para habilitarlo, instale la extensión y asegúrese de que el complemento esté instalado localmente (en la carpeta de su proyecto).
Es posible que Visual Studio Code no reconozca los selectores de documentos proporcionados por este complemento, por lo que puede agregar php a sus selectores de documentos agregando la siguiente línea a .vscode/settings.json
:
"prettier.documentSelectors" : [
" **/*.{js,jsx,ts,tsx,vue,html,css,scss,less,json,md,mdx,graphql,yaml,yml,php} "
]
Es posible que también necesites declarar php como analizador en tu archivo de configuración más bonito:
{
"parser" : " php " ,
"plugins" : [ " @prettier/plugin-php " ]
}
Consulte (este número)[#1730] para obtener más información sobre posibles soluciones de VS Code.
yarn add -D prettier @prettier/plugin-php
myproject/node_modules/prettier
{**/*,*}.{js,ts,jsx,tsx,php,json,scss,vue,md}
Nota: Simplemente presionar guardar no vuelve a formatear su archivo actual a menos que el archivo haya sido modificado de alguna manera; alternativamente, puede usar el acceso directo de Prettier Ctrl+Alt+Shift+P
La compatibilidad con Sublime Text está disponible a través de Package Control y el complemento JsPrettier.
El complemento oficial más bonito para vim tiene soporte integrado para plugin-php desde 1.0.
El complemento linting ALE tiene soporte integrado para Prettier y sus complementos. Simplemente agregue más bonito a su lista de reparadores. Por ejemplo:
let g: ale_fixers = {
' javascript ' : [ ' prettier'],
' json ' : [ ' prettier'],
' php ' : [ ' prettier'],
}
Alternativamente, agregar lo siguiente a .vimrc
definirá un comando personalizado :PrettierPhp
que ejecuta el complemento mientras conserva la posición del cursor y lo ejecuta al guardar.
" Prettier for PHP
function PrettierPhpCursor ()
let save_pos = getpos ( " . " )
% ! prettier -- stdin - - parser =php
call setpos ( ' . ' , save_pos)
endfunction
" define custom command
command PrettierPhp call PrettierPhpCursor ()
" format on save
autocmd BufwritePre *.php PrettierPhp
Consulte docs/recipes/php-cs-fixer
para obtener ayuda sobre la integración; el código también se puede encontrar en https://gist.github.com/Billz95/9d5fad3af728b88540fa831b73261733
Si está interesado en contribuir al desarrollo de Prettier para PHP, puede seguir la guía CONTRIBUCIÓN de Prettier, ya que todo se aplica también a este repositorio.
Para probarlo en un archivo PHP:
yarn
.test.php
.yarn prettier test.php
para verificar el resultado. ![]() Christian Zosel | ![]() Evilebot Tnawi |