Prettier est un formateur de code avisé. Il applique un style cohérent en analysant votre code et en le réimprimant avec ses propres règles qui prennent en compte la longueur maximale de la ligne, en encapsulant le code si nécessaire.
Ce plugin ajoute le support du langage PHP à Prettier.
Note
Ce plugin utilise PSR/PER comme guide lors de la prise de décisions de formatage, mais ne vise pas à être entièrement conforme à PSR/PER. L’idée est de rester raisonnablement proche du fonctionnement de Prettier for JS.
Nous considérons que le plugin est stable lorsque des fichiers PHP purs sont formatés. Le formatage des fichiers contenant un mélange de PHP et de HTML est toujours considéré comme instable - veuillez consulter les problèmes ouverts avec la balise "inline" pour plus de détails.
Si vous souhaitez utiliser le plugin en production, nous vous recommandons de limiter sa portée aux fichiers PHP purs.
<?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 ,
]
);
Vous pouvez essayer le plugin dans notre terrain de jeu !
fil:
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
Créez ou modifiez votre plus joli fichier de configuration pour activer le plugin :
{
"plugins" : [ " @prettier/plugin-php " ]
}
Si vous avez installé plus joli en tant que dépendance locale, vous pouvez ajouter plus joli en tant que script dans votre package.json
,
{
"scripts" : {
"prettier" : " prettier "
}
}
puis exécutez-le via
yarn run prettier path/to/file.php --write
# or
npm run prettier -- path/to/file.php --write
Si vous avez installé globalement, exécutez
prettier path/to/file.php --write
Ce package expose un standalone.js
qui peut être utilisé avec standalone.js
de Prettier pour faire fonctionner le plugin PHP dans les navigateurs sans étape de compilation.
Tout d'abord, récupérez les deux scripts autonomes à partir d'un CDN npm comme unpkg :
< script src =" https://unpkg.com/prettier/standalone.js " > </ script >
< script src =" https://unpkg.com/@prettier/plugin-php/standalone.js " > </ script >
Utilisez ensuite Prettier avec PHP, comme ceci :
await prettier . format ( YOUR_CODE , {
plugins : prettierPlugins ,
parser : "php" ,
} ) ;
Découvrez ce code en action dans cette démo de base.
Les bundles comme webpack, Rollup ou browserify reconnaissent automatiquement comment gérer le plugin PHP. N'oubliez pas que même lorsque vous utilisez un bundler, vous devez toujours utiliser les versions autonomes :
import prettier from "prettier/standalone" ;
import * as prettierPluginPhp from "@prettier/plugin-php/standalone" ;
await prettier . format ( YOUR_CODE , {
plugins : [ prettierPluginPhp ] ,
parser : "php" ,
} ) ;
Prettier pour PHP prend en charge les options suivantes. Nous recommandons à tous les utilisateurs de définir l'option phpVersion
.
Nom | Défaut | Description |
---|---|---|
phpVersion | "7.0" | Permet de spécifier la version de PHP que vous utilisez. Si vous utilisez PHP 7.1 ou version ultérieure, la définition de cette option utilisera les fonctionnalités du langage moderne dans la sortie imprimée. Si vous utilisez PHP inférieur à 7.0, vous devrez définir cette option sinon Prettier générera du code incompatible. |
printWidth | 80 | Identique à Prettier (voir plus jolie doc) |
tabWidth | 4 | Identique à Prettier (voir la documentation plus jolie), la valeur par défaut est 4 basée sur la norme de codage PSR-2 . |
useTabs | false | Identique à Prettier (voir plus jolie doc) |
singleQuote | false | Si la valeur est "true" , les chaînes qui utilisent des guillemets doubles mais ne s'appuient pas sur les fonctionnalités qu'elles ajoutent seront reformatées. Exemple : "foo" -> 'foo' , "foo $bar" -> "foo $bar" . |
trailingCommaPHP | true | Si la valeur est true , des virgules de fin seront ajoutées dans la mesure du possible.Si la valeur est false , aucune virgule finale n'est imprimée. |
braceStyle | "per-cs" | S'il est défini sur "per-cs" , plus joli déplacera l'accolade ouverte pour les blocs de code (classes, fonctions et méthodes) sur une nouvelle ligne.S'il est défini sur "1tbs" , plus joli déplacera l'accolade ouverte pour les blocs de code (classes, fonctions et méthodes) sur la même ligne. |
requirePragma | false | Identique à Prettier (voir plus jolie doc) |
insertPragma | false | Identique à Prettier (voir plus jolie doc) |
Un commentaire // prettier-ignore
exclura du formatage le nœud suivant de l'arbre de syntaxe abstraite.
Par exemple:
matrix (
1 , 0 , 0 ,
0 , 1 , 0 ,
0 , 0 , 1
);
// prettier-ignore
matrix (
1 , 0 , 0 ,
0 , 1 , 0 ,
0 , 0 , 1
);
sera transformé en
matrix ( 1 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 1 );
// prettier-ignore
matrix (
1 , 0 , 0 ,
0 , 1 , 0 ,
0 , 0 , 1
)
Le plugin officiel le plus joli pour atom prend en charge les plugins.
Le plugin officiel le plus joli pour vscode prend en charge les plugins depuis la version 1.10.0. Pour l'activer, installez l'extension et assurez-vous que le plugin est installé localement (dans le dossier de votre projet).
Visual Studio Code peut ne pas reconnaître les sélecteurs de documents fournis par ce plugin, vous pouvez donc ajouter php à vos sélecteurs de documents en ajoutant la ligne suivante à .vscode/settings.json
:
"prettier.documentSelectors" : [
" **/*.{js,jsx,ts,tsx,vue,html,css,scss,less,json,md,mdx,graphql,yaml,yml,php} "
]
Vous devrez peut-être également déclarer php comme analyseur dans votre plus joli fichier de configuration :
{
"parser" : " php " ,
"plugins" : [ " @prettier/plugin-php " ]
}
Voir (ce numéro)[#1730] pour plus de discussions sur les solutions potentielles de VS Code.
yarn add -D prettier @prettier/plugin-php
myproject/node_modules/prettier
{**/*,*}.{js,ts,jsx,tsx,php,json,scss,vue,md}
Remarque : le simple fait d'appuyer sur Enregistrer ne reformate pas votre fichier actuel à moins que le fichier n'ait été modifié d'une manière ou d'une autre. Vous pouvez également utiliser le raccourci Plus joli Ctrl+Alt+Maj+P.
La prise en charge de Sublime Text est disponible via Package Control et le plugin JsPrettier.
Le plugin officiel le plus joli pour vim prend en charge plugin-php depuis la version 1.0.
Le plugin de linting ALE prend en charge intégré plus joli et ses plugins. Ajoutez simplement plus joli à votre liste de fixateurs. Par exemple:
let g: ale_fixers = {
' javascript ' : [ ' prettier'],
' json ' : [ ' prettier'],
' php ' : [ ' prettier'],
}
Alternativement, l'ajout de ce qui suit à .vimrc
définira une commande personnalisée :PrettierPhp
qui exécute le plugin tout en préservant la position du curseur et l'exécutera lors de la sauvegarde.
" 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
Voir docs/recipes/php-cs-fixer
pour l'aide à l'intégration, le code peut également être trouvé sur https://gist.github.com/Billz95/9d5fad3af728b88540fa831b73261733
Si vous souhaitez contribuer au développement de Prettier pour PHP, vous pouvez suivre le guide CONTRIBUTION de Prettier, car tout s'applique également à ce référentiel.
Pour le tester sur un fichier PHP :
yarn
.test.php
.yarn prettier test.php
pour vérifier la sortie. Christian Zosel | Evilebot Tnawi |