Prettier é um formatador de código opinativo. Ele impõe um estilo consistente analisando seu código e reimprimindo-o com suas próprias regras que levam em consideração o comprimento máximo da linha, agrupando o código quando necessário.
Este plugin adiciona suporte para a linguagem PHP ao Prettier.
Observação
Este plugin usa PSR/PER como orientação ao tomar decisões de formatação, mas não pretende ser totalmente compatível com PSR/PER. A ideia é ficar razoavelmente próximo de como funciona o Prettier for JS.
Estamos considerando que o plugin seja estável quando arquivos PHP puros são formatados. A formatação de arquivos que contêm PHP e HTML mistos ainda é considerada instável - consulte os problemas abertos com a tag "inline" para obter detalhes.
Se você quiser usar o plugin em produção, recomendamos limitar seu escopo a arquivos 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 ,
]
);
Você pode experimentar o plugin em nosso playground!
fio:
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
Crie ou modifique seu arquivo de configuração mais bonito para ativar o plugin:
{
"plugins" : [ " @prettier/plugin-php " ]
}
Se você instalou mais bonito como uma dependência local, poderá adicionar mais bonito como um script em seu package.json
,
{
"scripts" : {
"prettier" : " prettier "
}
}
e depois execute-o via
yarn run prettier path/to/file.php --write
# or
npm run prettier -- path/to/file.php --write
Se você instalou globalmente, execute
prettier path/to/file.php --write
Este pacote expõe um standalone.js
que pode ser usado junto com standalone.js
do próprio Prettier para fazer o plugin PHP funcionar em navegadores sem uma etapa de compilação.
Primeiro, pegue os dois scripts independentes de um CDN npm como unpkg:
< script src =" https://unpkg.com/prettier/standalone.js " > </ script >
< script src =" https://unpkg.com/@prettier/plugin-php/standalone.js " > </ script >
Então use Prettier com PHP, assim:
await prettier . format ( YOUR_CODE , {
plugins : prettierPlugins ,
parser : "php" ,
} ) ;
Veja este código em ação nesta demonstração básica.
Bundlers como webpack, Rollup ou browserify reconhecem automaticamente como lidar com o plugin PHP. Lembre-se de que mesmo ao usar um bundler, você ainda terá que usar as compilações independentes:
import prettier from "prettier/standalone" ;
import * as prettierPluginPhp from "@prettier/plugin-php/standalone" ;
await prettier . format ( YOUR_CODE , {
plugins : [ prettierPluginPhp ] ,
parser : "php" ,
} ) ;
Mais bonito para PHP suporta as seguintes opções. Recomendamos que todos os usuários definam a opção phpVersion
.
Nome | Padrão | Descrição |
---|---|---|
phpVersion | "7.0" | Permite especificar a versão do PHP que você está usando. Se você estiver usando PHP 7.1 ou posterior, definir esta opção utilizará recursos de linguagem moderna na saída impressa. Se estiver usando PHP inferior a 7.0, você terá que definir esta opção ou o Prettier gerará código incompatível. |
printWidth | 80 | O mesmo que em Prettier (veja documentos mais bonitos) |
tabWidth | 4 | O mesmo que em Prettier (consulte a documentação mais bonita). O padrão é 4 com base no padrão de codificação PSR-2 . |
useTabs | false | O mesmo que em Prettier (veja documentos mais bonitos) |
singleQuote | false | Se definido como "true" , as strings que usam aspas duplas, mas não dependem dos recursos que elas adicionam, serão reformatadas. Exemplo: "foo" -> 'foo' , "foo $bar" -> "foo $bar" . |
trailingCommaPHP | true | Se definido como true , vírgulas finais serão adicionadas sempre que possível.Se definido como false , nenhuma vírgula final será impressa. |
braceStyle | "per-cs" | Se definido como "per-cs" , mais bonito moverá chaves abertas para blocos de código (classes, funções e métodos) para uma nova linha.Se definido como "1tbs" , mais bonito moverá chaves abertas para blocos de código (classes, funções e métodos) para a mesma linha. |
requirePragma | false | O mesmo que em Prettier (veja documentos mais bonitos) |
insertPragma | false | O mesmo que em Prettier (veja documentos mais bonitos) |
Um comentário // prettier-ignore
excluirá da formatação o próximo nó na árvore de sintaxe abstrata.
Por exemplo:
matrix (
1 , 0 , 0 ,
0 , 1 , 0 ,
0 , 0 , 1
);
// prettier-ignore
matrix (
1 , 0 , 0 ,
0 , 1 , 0 ,
0 , 0 , 1
);
será transformado em
matrix ( 1 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 1 );
// prettier-ignore
matrix (
1 , 0 , 0 ,
0 , 1 , 0 ,
0 , 0 , 1
)
O plugin oficial mais bonito para atom suporta plugins.
O plugin oficial mais bonito para vscode suporta plugins desde a versão 1.10.0. Para habilitá-lo, instale a extensão e certifique-se de que o plugin esteja instalado localmente (na pasta do seu projeto).
O Visual Studio Code pode não reconhecer os seletores de documentos fornecidos por este plug-in e, portanto, você pode adicionar php aos seus seletores de documentos adicionando a seguinte linha a .vscode/settings.json
:
"prettier.documentSelectors" : [
" **/*.{js,jsx,ts,tsx,vue,html,css,scss,less,json,md,mdx,graphql,yaml,yml,php} "
]
Você também pode precisar declarar o php como o analisador no seu arquivo de configuração mais bonito:
{
"parser" : " php " ,
"plugins" : [ " @prettier/plugin-php " ]
}
Consulte (esta edição)[#1730] para obter mais discussões sobre possíveis soluções do VS Code.
yarn add -D prettier @prettier/plugin-php
myproject/node_modules/prettier
{**/*,*}.{js,ts,jsx,tsx,php,json,scss,vue,md}
Nota: Apenas pressionar salvar não reformata seu arquivo atual, a menos que o arquivo tenha sido modificado de alguma forma. Alternativamente, você pode usar o atalho mais bonito Ctrl+Alt+Shift+P
O suporte ao Sublime Text está disponível através do Package Control e do plugin JsPrettier.
O plugin oficial mais bonito para vim tem suporte integrado para plugin-php desde 1.0.
O plugin linting ALE possui suporte integrado para mais bonito e seus plugins. Basta adicionar mais bonito à sua lista de fixadores. Por exemplo:
let g: ale_fixers = {
' javascript ' : [ ' prettier'],
' json ' : [ ' prettier'],
' php ' : [ ' prettier'],
}
Alternativamente, adicionar o seguinte a .vimrc
definirá um comando personalizado :PrettierPhp
que executa o plugin enquanto preserva a posição do cursor e o executa ao salvar.
" 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 obter ajuda de integração. O código também pode ser encontrado em https://gist.github.com/Billz95/9d5fad3af728b88540fa831b73261733
Se você estiver interessado em contribuir para o desenvolvimento do Prettier para PHP, você pode seguir o guia CONTRIBUTING do Prettier, pois tudo se aplica a este repositório também.
Para testá-lo em um arquivo PHP:
yarn
.test.php
.yarn prettier test.php
para verificar a saída. Christian Zosel | Evilebot Tnawi |