Prettier — самоуверенный форматировщик кода. Он обеспечивает согласованный стиль, анализируя ваш код и перепечатывая его по своим собственным правилам, которые учитывают максимальную длину строки и при необходимости переносят код.
Этот плагин добавляет поддержку языка PHP в Prettier.
Примечание
Этот плагин использует PSR/PER в качестве руководства при принятии решений по форматированию, но не претендует на полную совместимость с PSR/PER. Идея состоит в том, чтобы оставаться достаточно близко к тому, как работает Prettier для JS.
Мы считаем, что плагин будет стабильным при форматировании файлов на чистом PHP. Форматирование файлов, содержащих смешанные PHP и HTML, по-прежнему считается нестабильным. Подробности см. в разделе «Открытые проблемы с тегом «inline».
Если вы хотите использовать плагин в производстве, мы рекомендуем ограничить его область применения чистыми файлами PHP.
<?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 ,
]
);
Вы можете попробовать плагин на нашей игровой площадке!
пряжа:
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 install --save-dev prettier @prettier/plugin-php
# or globally (pending https://github.com/prettier/prettier/issues/15141)
npm install --global prettier @prettier/plugin-php
Создайте или измените свой более красивый файл конфигурации, чтобы активировать плагин:
{
"plugins" : [ " @prettier/plugin-php " ]
}
Если вы установили prettier как локальную зависимость, вы можете добавить prettier как скрипт в свой package.json
,
{
"scripts" : {
"prettier" : " prettier "
}
}
а затем запустите его через
yarn run prettier path/to/file.php --write
# or
npm run prettier -- path/to/file.php --write
Если вы установили глобально, запустите
prettier path/to/file.php --write
Этот пакет предоставляет файл standalone.js
, который можно использовать вместе с собственным standalone.js
Prettier, чтобы плагин PHP работал в браузерах без этапа компиляции.
Сначала возьмите оба автономных сценария из CDN npm, например unpkg:
< script src =" https://unpkg.com/prettier/standalone.js " > </ script >
< script src =" https://unpkg.com/@prettier/plugin-php/standalone.js " > </ script >
Затем используйте Prettier с PHP, вот так:
await prettier . format ( YOUR_CODE , {
plugins : prettierPlugins ,
parser : "php" ,
} ) ;
Посмотрите этот код в действии в этой базовой демонстрации.
Такие бандлеры, как Webpack, Rollup или Browserify, автоматически распознают, как обращаться с плагином PHP. Помните, что даже при использовании бандлера вам все равно придется использовать автономные сборки:
import prettier from "prettier/standalone" ;
import * as prettierPluginPhp from "@prettier/plugin-php/standalone" ;
await prettier . format ( YOUR_CODE , {
plugins : [ prettierPluginPhp ] ,
parser : "php" ,
} ) ;
Prettier для PHP поддерживает следующие параметры. Мы рекомендуем всем пользователям установить параметр phpVersion
.
Имя | По умолчанию | Описание |
---|---|---|
phpVersion | "7.0" | Позволяет указать используемую версию PHP. Если вы используете PHP 7.1 или более позднюю версию, установка этой опции позволит использовать функции современного языка в печатном выводе. Если вы используете PHP ниже 7.0, вам придется установить эту опцию, иначе Prettier сгенерирует несовместимый код. |
printWidth | 80 | То же, что и в Prettier (см. документацию Prettier). |
tabWidth | 4 | То же, что и в Prettier (см. документацию prettier). Значение по умолчанию — 4 , основанное на стандарте кодирования PSR-2 . |
useTabs | false | То же, что и в Prettier (см. документацию Prettier). |
singleQuote | false | Если установлено значение "true" , строки, в которых используются двойные кавычки, но не зависят от добавляемых ими функций, будут переформатированы. Пример: "foo" -> 'foo' , "foo $bar" -> "foo $bar" . |
trailingCommaPHP | true | Если установлено значение true , везде, где это возможно, будут добавляться конечные запятые.Если установлено значение false , конечные запятые не печатаются. |
braceStyle | "per-cs" | Если установлено значение "per-cs" , prettier переместит открывающую скобку для блоков кода (классов, функций и методов) на новую строку.Если установлено значение "1tbs" , prettier переместит открывающую скобку для блоков кода (классов, функций и методов) на одну строку. |
requirePragma | false | То же, что и в Prettier (см. документацию Prettier). |
insertPragma | false | То же, что и в Prettier (см. документацию Prettier). |
Комментарий // prettier-ignore
исключит из форматирования следующий узел в дереве абстрактного синтаксиса.
Например:
matrix (
1 , 0 , 0 ,
0 , 1 , 0 ,
0 , 0 , 1
);
// prettier-ignore
matrix (
1 , 0 , 0 ,
0 , 1 , 0 ,
0 , 0 , 1
);
будет преобразован в
matrix ( 1 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 1 );
// prettier-ignore
matrix (
1 , 0 , 0 ,
0 , 1 , 0 ,
0 , 0 , 1
)
Официальный более красивый плагин для Atom поддерживает плагины.
Официальный более красивый плагин для vscode поддерживает плагины начиная с версии 1.10.0. Чтобы включить его, установите расширение и убедитесь, что плагин установлен локально (в папке вашего проекта).
Visual Studio Code может не распознавать селекторы документов, предоставляемые этим плагином, поэтому вы можете добавить php в свои селекторы документов, добавив следующую строку в .vscode/settings.json
:
"prettier.documentSelectors" : [
" **/*.{js,jsx,ts,tsx,vue,html,css,scss,less,json,md,mdx,graphql,yaml,yml,php} "
]
Вам также может потребоваться объявить php в качестве анализатора в вашем более красивом файле конфигурации:
{
"parser" : " php " ,
"plugins" : [ " @prettier/plugin-php " ]
}
См. (этот выпуск) [#1730] для получения дополнительной информации о потенциальных решениях VS Code.
yarn add -D prettier @prettier/plugin-php
myproject/node_modules/prettier
{**/*,*}.{js,ts,jsx,tsx,php,json,scss,vue,md}
Примечание. Простое нажатие кнопки «Сохранить» не приводит к переформатированию текущего файла, если он не был каким-либо образом изменен. В качестве альтернативы вы можете использовать ярлык Prettier Ctrl+Alt+Shift+P.
Поддержка Sublime Text доступна через Package Control и плагин JsPrettier.
Официальный более красивый плагин для vim имеет встроенную поддержку плагина-php начиная с версии 1.0.
Плагин для линтинга ALE имеет встроенную поддержку prettier и его плагинов. Просто добавьте красивее в свой список фиксаторов. Например:
let g: ale_fixers = {
' javascript ' : [ ' prettier'],
' json ' : [ ' prettier'],
' php ' : [ ' prettier'],
}
В качестве альтернативы, добавление следующего в .vimrc
определит пользовательскую команду :PrettierPhp
, которая запускает плагин, сохраняя позицию курсора, и запускает его при сохранении.
" 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
См docs/recipes/php-cs-fixer
для получения помощи по интеграции, код также можно найти в https://gist.github.com/Billz95/9d5fad3af728b88540fa831b73261733.
Если вы заинтересованы в участии в разработке Prettier для PHP, вы можете следовать руководству «ВКЛАД» от Prettier, поскольку все оно применимо и к этому репозиторию.
Чтобы проверить это в файле PHP:
yarn
.test.php
.yarn prettier test.php
чтобы проверить результат. Кристиан Зозель | Злойбот Тнави |