Prettier adalah pemformat kode yang berpendirian keras. Ini menerapkan gaya yang konsisten dengan menguraikan kode Anda dan mencetak ulang dengan aturannya sendiri yang memperhitungkan panjang baris maksimum, membungkus kode bila diperlukan.
Plugin ini menambahkan dukungan untuk bahasa PHP ke Prettier.
Catatan
Plugin ini menggunakan PSR/PER sebagai panduan saat membuat keputusan format, namun tidak bertujuan untuk sepenuhnya mematuhi PSR/PER. Idenya adalah untuk tetap dekat dengan cara kerja Prettier for JS.
Kami mempertimbangkan plugin agar stabil ketika file PHP murni diformat. Pemformatan file yang berisi campuran PHP dan HTML masih dianggap tidak stabil - silakan lihat masalah terbuka dengan tag "inline" untuk detailnya.
Jika Anda ingin menggunakan plugin dalam produksi, sebaiknya batasi cakupannya hanya pada file PHP murni.
<?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 ,
]
);
Anda dapat mencoba plugin ini di taman bermain kami!
benang:
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
Buat atau modifikasi file konfigurasi Anda yang lebih cantik untuk mengaktifkan plugin:
{
"plugins" : [ " @prettier/plugin-php " ]
}
Jika Anda menginstal prettier sebagai ketergantungan lokal, Anda dapat menambahkan prettier sebagai skrip di package.json
Anda,
{
"scripts" : {
"prettier" : " prettier "
}
}
dan kemudian menjalankannya melalui
yarn run prettier path/to/file.php --write
# or
npm run prettier -- path/to/file.php --write
Jika Anda menginstal secara global, jalankan
prettier path/to/file.php --write
Paket ini memperlihatkan standalone.js
yang dapat digunakan bersama standalone.js
milik Prettier untuk membuat plugin PHP berfungsi di browser tanpa langkah kompilasi.
Pertama, ambil kedua skrip mandiri dari CDN npm seperti unpkg:
< script src =" https://unpkg.com/prettier/standalone.js " > </ script >
< script src =" https://unpkg.com/@prettier/plugin-php/standalone.js " > </ script >
Kemudian gunakan Prettier dengan PHP, seperti ini:
await prettier . format ( YOUR_CODE , {
plugins : prettierPlugins ,
parser : "php" ,
} ) ;
Lihat kode ini beraksi di demo dasar ini.
Bundel seperti webpack, Rollup, atau browserify secara otomatis mengenali cara menangani plugin PHP. Ingatlah bahwa meskipun menggunakan bundler, Anda tetap harus menggunakan build mandiri:
import prettier from "prettier/standalone" ;
import * as prettierPluginPhp from "@prettier/plugin-php/standalone" ;
await prettier . format ( YOUR_CODE , {
plugins : [ prettierPluginPhp ] ,
parser : "php" ,
} ) ;
Prettier untuk PHP mendukung opsi berikut. Kami menyarankan semua pengguna mengatur opsi phpVersion
.
Nama | Bawaan | Keterangan |
---|---|---|
phpVersion | "7.0" | Memungkinkan menentukan versi PHP yang Anda gunakan. Jika Anda menggunakan PHP 7.1 atau lebih baru, pengaturan opsi ini akan memanfaatkan fitur bahasa modern pada hasil cetakan. Jika Anda menggunakan PHP lebih rendah dari 7.0, Anda harus mengatur opsi ini atau Prettier akan menghasilkan kode yang tidak kompatibel. |
printWidth | 80 | Sama seperti di Prettier (lihat dokumen yang lebih cantik) |
tabWidth | 4 | Sama seperti di Prettier (lihat dokumen yang lebih cantik), Defaultnya adalah 4 berdasarkan standar pengkodean PSR-2 . |
useTabs | false | Sama seperti di Prettier (lihat dokumen yang lebih cantik) |
singleQuote | false | Jika disetel ke "true" , string yang menggunakan tanda kutip ganda namun tidak bergantung pada fitur yang ditambahkannya, akan diformat ulang. Contoh: "foo" -> 'foo' , "foo $bar" -> "foo $bar" . |
trailingCommaPHP | true | Jika disetel ke true , koma tambahan akan ditambahkan jika memungkinkan.Jika disetel ke false , tidak ada koma tambahan yang dicetak. |
braceStyle | "per-cs" | Jika disetel ke "per-cs" , prettier akan memindahkan kurung kurawal terbuka untuk blok kode (kelas, fungsi, dan metode) ke baris baru.Jika disetel ke "1tbs" , prettier akan memindahkan kurung kurawal terbuka untuk blok kode (kelas, fungsi, dan metode) ke baris yang sama. |
requirePragma | false | Sama seperti di Prettier (lihat dokumen yang lebih cantik) |
insertPragma | false | Sama seperti di Prettier (lihat dokumen yang lebih cantik) |
Komentar // prettier-ignore
akan mengecualikan node berikutnya dalam pohon sintaksis abstrak dari pemformatan.
Misalnya:
matrix (
1 , 0 , 0 ,
0 , 1 , 0 ,
0 , 0 , 1
);
// prettier-ignore
matrix (
1 , 0 , 0 ,
0 , 1 , 0 ,
0 , 0 , 1
);
akan diubah menjadi
matrix ( 1 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 1 );
// prettier-ignore
matrix (
1 , 0 , 0 ,
0 , 1 , 0 ,
0 , 0 , 1
)
Plugin resmi yang lebih cantik untuk atom mendukung plugin.
Plugin resmi yang lebih cantik untuk vscode mendukung plugin sejak Versi 1.10.0. Untuk mengaktifkannya, instal ekstensi dan pastikan plugin diinstal secara lokal (di folder proyek Anda).
Visual Studio Code mungkin tidak mengenali pemilih dokumen yang disediakan oleh plugin ini, sehingga Anda dapat menambahkan php ke pemilih dokumen Anda dengan menambahkan baris berikut ke .vscode/settings.json
:
"prettier.documentSelectors" : [
" **/*.{js,jsx,ts,tsx,vue,html,css,scss,less,json,md,mdx,graphql,yaml,yml,php} "
]
Anda mungkin juga perlu mendeklarasikan php sebagai parser di file konfigurasi Anda yang lebih cantik:
{
"parser" : " php " ,
"plugins" : [ " @prettier/plugin-php " ]
}
Lihat (masalah ini)[#1730] untuk diskusi lebih lanjut seputar potensi solusi VS Code.
yarn add -D prettier @prettier/plugin-php
myproject/node_modules/prettier
{**/*,*}.{js,ts,jsx,tsx,php,json,scss,vue,md}
Catatan: Menekan simpan saja tidak akan memformat ulang file Anda saat ini kecuali file tersebut telah dimodifikasi dengan cara tertentu, alternatifnya Anda dapat menggunakan pintasan Prettier Ctrl+Alt+Shift+P
Dukungan Sublime Text tersedia melalui Package Control dan plugin JsPrettier.
Plugin resmi yang lebih cantik untuk vim memiliki dukungan bawaan untuk plugin-php sejak 1.0.
Plugin linting ALE memiliki dukungan bawaan untuk lebih cantik dan pluginnya. Tambahkan saja lebih cantik ke daftar pemecah masalah Anda. Misalnya:
let g: ale_fixers = {
' javascript ' : [ ' prettier'],
' json ' : [ ' prettier'],
' php ' : [ ' prettier'],
}
Alternatifnya, menambahkan perintah berikut ke .vimrc
akan menentukan perintah khusus :PrettierPhp
yang menjalankan plugin sambil mempertahankan posisi kursor dan menjalankannya saat disimpan.
" 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
Lihat docs/recipes/php-cs-fixer
untuk bantuan integrasi, kode juga dapat ditemukan di https://Gist.github.com/Billz95/9d5fad3af728b88540fa831b73261733
Jika Anda tertarik untuk berkontribusi dalam pengembangan Prettier untuk PHP, Anda dapat mengikuti panduan KONTRIBUSI dari Prettier, karena semuanya berlaku untuk repositori ini juga.
Untuk mengujinya pada file PHP:
yarn
.test.php
.yarn prettier test.php
untuk memeriksa hasilnya. Christian Zosel | Evilebot Tnawi |