php-cs-fixer ialah alat pemformatan kod Piawaian pemformatan ialah PSR-1, PSR-2 dan beberapa piawaian . Alat ini juga berasal dari keluarga yang sama seperti symfony, twig dan perpustakaan PHP lain yang sangat baik.
Pemasangan dan kemas kini
Memerlukan PHP 5.3.6 ke atas.
Anda boleh memuat turun terus pakej phar encapsulated: php-cs-fixer.phar; >
Atau muat turun melalui curl:wget http://get.sensiolabs.org/php-cs-fixer.phar -O php-cs-fixer
curl http://get.sensiolabs.org/php-cs-fixer.phar -o php-cs-fixer
perintah terus untuk memanggilnya di mana-mana sahaja.
sudo chmod a+x php-cs-fixer sudo mv php-cs-fixer /usr/local/bin/php-cs-fixer
php-cs-fixer
composer global require fabpot/php-cs-fixer
brew install php-cs-fixer
brew install homebrew/php/php-cs-fixer
php-cs-fixer self-update
bukannya
dalam Windows.brew upgrade php-cs-fixer
Penggunaanphp php-cs-fixer.phar
php-cs-fixer
juga sangat mudah digunakan Parameter arahan yang paling asas ialah
digunakan untuk memaparkan peraturan yang digunakan Format lalai ialah teks (fix
). Pilihan
# 格式化目录 如果是当前目录的话可以省略目录 php-cs-fixer fix /path/to/dir # 格式化文件 php-cs-fixer.phar fix /path/to/file
digunakan untuk mengawal tahap peraturan yang perlu digunakan: --verbose
txt
Berbilang syarat --level
hendaklah dipisahkan dengan koma:
php-cs-fixer fix /path/to/project --level=psr0 php-cs-fixer fix /path/to/project --level=psr1 php-cs-fixer fix /path/to/project --level=psr2 php-cs-fixer fix /path/to/project --level=symfony
juga boleh digunakan jika. perlu --fixers
Gunakan senarai hitam untuk menetapkan pilihan yang dilumpuhkan. Jika kedua-dua --fixers
dan
php-cs-fixer fix /path/to/dir --fixers=linefeed,short_tag,indentation
Menggunakan arahan -name_of_fixer
dan --fixers
secara serentak boleh memaparkan ringkasan yang perlu diubah suai, tetapi sebenarnya tidak mengubahnya. -name_of_fixer
--dry-run
--diff
Konfigurasi tersuai
cat foo.php | php-cs-fixer fix --diff -
--config
# For the Symfony 2.3+ branch php-cs-fixer fix /path/to/sf23 --config=sf23
- projek magento magento
- projek symfony sf23
- Lebih kerap , kami boleh menyesuaikan pilihan pemformatan dan mencari direktori dan fail melalui fail konfigurasi. Konfigurasi tersuai dicapai dengan menambahkan fail
dalam direktori akar projek.
Tetapan itu sendiri ialah kod PHP, dan akhirnya mengembalikan contoh SymfonyCSConfigInterface. Anda boleh menetapkan pilihan pemformatan, tahap, fail dan direktori.
Berikut ialah contoh mudah: .php_cs
Jika anda ingin menyesuaikan sepenuhnya pilihan pemformatan, anda perlu mengosongkan tahap pemformatan dan menentukan semua pilihan yang diperlukan:
Anda juga boleh melumpuhkan pilihan tertentu dengan menambahkan<?php $finder = Symfony\CS\Finder\DefaultFinder::create() ->exclude('somedir') // 忽略 somedir ->in(__DIR__) // 当前目录 ; return Symfony\CS\Config\Config::create() ->fixers(['strict_param', 'short_array_syntax']) // 添加两个选项 ->finder($finder) ;
<?php $finder = Symfony\CS\Finder\DefaultFinder::create() ->in(__DIR__) ; return Symfony\CS\Config\Config::create() ->level(Symfony\CS\FixerInterface::NONE_LEVEL) ->fixers(['trailing_spaces', 'encoding']) ->finder($finder) ;
-
<?php $finder = Symfony\CS\Finder\DefaultFinder::create() ->exclude('somedir') ->in(__DIR__) ; return Symfony\CS\Config\Config::create() ->fixers(['-psr0']) ->finder($finder) ;
Anda juga boleh menentukan lokasi fail
melalui pilihan<?php return Symfony\CS\Config\Config::create() ->level(Symfony\CS\FixerInterface::PSR2_LEVEL) ;
--config-file
.php_cs
Pemalam editor
Pemalam editor/IDE berikut boleh membantu. Anda memudahkan kerja pemformatan:
<?php return Symfony\CS\Config\Config::create() ->setUsingCache(true) ;
- NetBeans
- PhpStorm
- Teks Luhur
- Vim
- Pilihan Pemformatan
psr0 [PSR-0]
- Piawaian laluan dan ruang nama untuk PSR-0
pengekodan [PSR-1 ] Fail mesti dikodkan UTF-8 tanpa BOM;
short_tag [PSR-1] Hanya dua Tag kod PHP, - dan
, boleh digunakan
<?php ?>
<?= ?>
pendakap [PSR-2] Semua blok pernyataan mesti disertakan dalam pendakap kerinting, dan kedudukan serta lekukan adalah standard; Hanya terdapat satu ruang antara kelas, sifat, kata kunci antara muka dan nama; - bukannya
;
eof_ending [PSR-2] Fail mesti berakhir dengan garisan Kosong ;
function_call_space [PSR-2]
Apabila memanggil fungsi dan kaedah, tidak boleh ada ruang antara nama fungsi dan nama kaedah serta pengembangan parameterfunction_declaration [PSR-2]
Penggunaan ruang semasa mengisytiharkan fungsi perlu mematuhi PSR-2; 🎜>
lekukan [PSR-2]-
Kod mesti menggunakan empat ruang untuk lekukan dan bukannya tab; 🎜>line_after_namespace [PSR-2]
Semua fail PHP hanya boleh menggunakan penghujung LF (Unix); -2 ]
Mesti ada baris kosong selepas pengisytiharan ruang nama; 🎜>linefeed [PSR-2] - Pemalar PHP benar, palsu dan nol mestilah huruf kecil
kata kunci_huruf kecil [PSR-2] - Kata kunci PHP semuanya mestilah huruf kecil;
method_argument_space [PSR-2] - Apabila kaedah diisytiharkan dan dipanggil , parameter Tidak boleh ada ruang sebelum koma, dan mesti ada ruang selepas koma
multiple_use [PSR-2] - Setiap penggunaan hanya boleh mengisytiharkan satu elemen;
kurungan [PSR-2] - Tidak boleh ada ruang pada kedua-dua belah kurungan; ;
single_line_after_imports [PSR-2] - Setiap pernyataan penggunaan berada pada baris yang berasingan, dan mesti ada baris kosong selepas blok pernyataan penggunaan;
trailing_spaces [PSR-2] - Padamkan ruang tambahan selepas baris bukan kosong; >
keterlihatan [PSR-2] Setiap sifat dan kaedah mesti menyatakan sama ada skopnya ialah - ,
atau , dan
mesti diletakkan Sebelum kata kunci skop,?>
mestilah selepas skop array_element_no_space_before_comma [ symfony]
Dalam pengisytiharan tatasusunan, Tidak boleh ada ruang sebelum koma;
Dalam pengisytiharan tatasusunan, mesti ada ruang selepas koma;blankline_after_open_tag [symfony]
Tidak boleh menjadi kod pada baris yang sama pada teg permulaan PHP, dan mesti ada baris kosong di bawah; 🎜> Tidak boleh ada ruang tambahan di sebelah kiri dan kanan penyambung titik;
Tidak boleh terdapat berbilang baris kosong pada kedua-dua hujung operator; ;-
extra_empty_lines [symfony]
empty_return [symfony]public
protected
Jika pernyataan return tidak mengembalikan apa-apa, tulis sahaja return (tanpa return null);private
abstract
final
static
- Alih keluar baris kosong tambahan; >
function_typehint_space [symfony]
Betulkan ruang yang hilang antara parameter fungsi dan pembayang jenis Masalah; Perlu ada ruang antara -
serta [symfony]
dan laluan fail, tetapi bukan laluan fail yang dikelilingi oleh kurungan join_function [symfony]
Gunakan
untuk menggantikan fungsi
list_commas [ symfony]
Padamkan koma tambahan dalam penyataan
method_argument_default_value [symfony]=>
new_with_braces [symfony]
Gunakan baharu untuk mencipta baharu Contoh hendaklah diikuti dengan tanda kurung; >-
tiada_baris_kosong_selepas_pembukaan_kelas [symfony] Seharusnya tiada baris kosong selepas teg permulaan kelas;
no_empty_lines_after_phpdocs [symfony] - Seharusnya tiada baris kosong di bawah elemen permulaan blok dokumentasi PHP
() Seharusnya tiada ruang di kedua-dua hujungnya;
-
ruang_pengendali [symfony]
phpdoc harus kekal indent;
Operator binari mempunyai sekurang-kurangnya satu ruang di kedua-dua hujungnya; >
phpdoc_indent [symfony]
phpdoc_inline_tag [symfony]- dan
tidak sepatutnya muncul dalam phpdoc dalam
phpdoc_no_package [symfony] dan tidak sepatutnya muncul dalam phpdoc;
,@access
,
dan
dsb. phpdoc Tag mesti dijajarkan secara menegak; pengisytiharan jenis skalar phpdoc hendaklah menggunakan - bukannya
, bukannya ,
bukannya@return void
atau@return null
; 🎜>
phpdoc_separation [symfony] -
sifat dengan komen yang sama dalam phpdoc harus disatukan, dan sifat yang berbeza harus dipisahkan oleh garis kosong;
Penerangan ringkas phpdoc hendaklah berakhir dengan@package
@subpackage
phpdoc_short_description [symfony] , - atau
; >
@param
@throws
@return
phpdoc_to_comment [symfony]@var
@type
Semua blok dokumen mestilah elemen berstruktur; 🎜>
phpdoc_trim [symfony] Kecuali pada permulaan dan penghujung blok dokumentasi, phpdoc harus mempunyai kandungan pada awal dan akhir; > -
phpdoc_type_to_var [symfony]
hendaklah betul dalam phpdoc Gunakan huruf besar dan kecilint
perlu diganti denganinteger
bool
boolean
float
real
double
;
phpdoc_types [symfony]
phpdoc_var_without_name [symfony] dan - ulasan tidak seharusnya mengandungi nama berubah; Penggunaan
atau tidak boleh digunakan;
.
!
?
print_to_echo [symfony] Jika boleh, gunakan - bukannya pernyataan
;
remove_leading_slash_use [symfony] Alih keluar baris kosong sebelum ;
- remove_lines_between_uses [symfony]
Alih keluar baris kosong dalam blok pernyataan
@type
@var
kembali [symfony] ; self_accessor [symfony]
Gunakan Gantikan nama kelas; short_bool_cast [symfony] Dua tanda seru tidak boleh digunakan sebelum jenis data;@var
@type
single_array_no_trailing_comma] Harus ada baris kosong sebelum pengisytiharan ruang nama; bukannya petikan berganda;ruang_selepas_koma bertitik [symfony]
Betulkan ruang selepas koma bertitiki
--i
- ruang_sebelum_koma bertitik [symfony]
Lumpuhkan hanya ruang satu baris dan pemisah Cara menulis nombor;
Gunakanecho
spaces_cast [symfony]print
Perlu ada ruang antara pembolehubah dan pengubah suai; 🎜>standardkan_tidak_sama [symfony] dan bukannya - ;
Normalkan ruang antara operator ternary;
trim_array_spaces [ symfony]use
- Tatasusunan perlu diformatkan serupa dengan fungsi/ parameter kaedah, tanpa garisan kosong di atas dan di bawah;
unary_operators_spaces [symfony]
Unary operator dan operand perlu bersebelahan; 🎜>unneeded_control_parentheses [symfony]
Alih keluar kurungan berlebihan dalam pernyataan struktur kawalan; > Padamkan pernyataan penggunaan yang tidak digunakan;
whitespacy_lines [symfony]
Padamkan ruang tambahan dalam baris kosong; Selain pilihan di atas, terdapat juga beberapa pilihan sumbangan pengguna, yang tidak akan diperkenalkan satu persatu di sini. Setiap orang dan setiap pasukan mungkin mempunyai pendapat mereka sendiri sama ada gaya pengekodan harus disatukan dan piawaian yang perlu dilaksanakan. Ini hanyalah pengenalan kepada alat ini Mengenai cara memilihnya, terpulang kepada anda. Jika ia adalah projek sumber terbuka, anda juga boleh mencuba StyleCI. Pembelajaran yang disyorkan: "
Tutorial Video PHP
"