Prettier는 독선적인 코드 포맷터입니다. 코드를 구문 분석하고 최대 줄 길이를 고려하여 필요한 경우 코드를 래핑하는 자체 규칙으로 다시 인쇄하여 일관된 스타일을 적용합니다.
이 플러그인은 Prettier에 PHP 언어 지원을 추가합니다.
메모
이 플러그인은 형식 결정을 내릴 때 PSR/PER를 지침으로 사용하지만 PSR/PER을 완전히 준수하는 것을 목표로 하지 않습니다. 아이디어는 Prettier for JS의 작동 방식에 합리적으로 근접하게 유지하는 것입니다.
순수 PHP 파일을 포맷할 때 플러그인이 안정적일 수 있도록 고려하고 있습니다. PHP와 HTML이 혼합된 파일 형식은 여전히 불안정한 것으로 간주됩니다. 자세한 내용은 "인라인" 태그가 포함된 공개 문제를 참조하세요.
프로덕션에서 플러그인을 사용하려면 해당 범위를 순수 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-phpnpm:
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를 로컬 종속성으로 설치한 경우 package.json 에 prettier를 스크립트로 추가할 수 있습니다.
{
"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 이 패키지는 Prettier의 자체 standalone.js .js와 함께 사용하여 컴파일 단계 없이 브라우저에서 PHP 플러그인이 작동하도록 할 수 있는 standalone.js .js를 노출합니다.
먼저 unpkg와 같은 npm CDN에서 두 독립 실행형 스크립트를 모두 가져옵니다.
< script src =" https://unpkg.com/prettier/standalone.js " > </ script >
< script src =" https://unpkg.com/@prettier/plugin-php/standalone.js " > </ script >그런 다음 다음과 같이 PHP와 함께 Prettier를 사용하세요.
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" ,
} ) ; PHP용 Prettier는 다음 옵션을 지원합니다. 모든 사용자는 phpVersion 옵션을 설정하는 것이 좋습니다.
| 이름 | 기본 | 설명 |
|---|---|---|
phpVersion | "7.0" | 사용 중인 PHP 버전을 지정할 수 있습니다. PHP 7.1 이상을 사용하는 경우 이 옵션을 설정하면 인쇄된 출력에서 최신 언어 기능을 사용할 수 있습니다. 7.0 미만의 PHP를 사용하는 경우 이 옵션을 설정해야 합니다. 그렇지 않으면 Prettier가 호환되지 않는 코드를 생성합니다. |
printWidth | 80 | Prettier와 동일(Prettier 문서 참조) |
tabWidth | 4 | Prettier와 동일합니다(prettier 문서 참조). 기본값은 PSR-2 코딩 표준에 따라 4 입니다. |
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의 공식 Prettier 플러그인은 플러그인을 지원합니다.
vscode의 공식 Prettier 플러그인은 버전 1.10.0부터 플러그인을 지원합니다. 이를 활성화하려면 확장 기능을 설치하고 플러그인이 로컬 (프로젝트 폴더)에 설치되어 있는지 확인하세요.
Visual Studio Code는 이 플러그인에서 제공하는 문서 선택기를 인식하지 못할 수 있으므로 .vscode/settings.json 에 다음 줄을 추가하여 문서 선택기에 PHP를 추가할 수 있습니다.
"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 " ]
}잠재적인 VS Code 솔루션에 대한 자세한 내용은 (이 문제)[#1730]를 참조하세요.
yarn add -D prettier @prettier/plugin-phpmyproject/node_modules/prettier 와 같은 패키지여야 합니다.{**/*,*}.{js,ts,jsx,tsx,php,json,scss,vue,md}참고: 파일이 어떤 방식으로 수정되지 않는 한 저장만 누르면 현재 파일의 형식이 다시 지정되지 않습니다. 또는 Prettier 단축키 Ctrl+Alt+Shift+P를 사용할 수도 있습니다.
Sublime Text 지원은 Package Control 및 JsPrettier 플러그인을 통해 제공됩니다.
vim의 공식 예쁜 플러그인은 1.0부터 플러그인-php에 대한 지원을 내장하고 있습니다.
Linting 플러그인 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 for PHP 개발에 기여하고 싶다면 Prettier의 CONTRIBUTING 가이드를 따르세요. 모든 내용이 이 저장소에도 적용됩니다.
PHP 파일에서 테스트하려면 다음을 수행하십시오.
yarn 실행합니다.test.php 라는 파일을 만듭니다.yarn prettier test.php 실행하여 출력을 확인하세요. ![]() 크리스티안 조젤 | ![]() 이블레봇 트나위 |