Tidakkah anda tahu cara menggunakan alat pengekodan dan pemformatan php-cs-fixer ini?

藏色散人
Lepaskan: 2023-04-10 16:50:02
ke hadapan
4460 orang telah melayarinya

php-cs-fixer - Alat pemformatan pengekodan PHP

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
Salin selepas log masuk
Selepas muat turun selesai, berikan kebenaran boleh laku, dan kemudian pindah ke direktori bin:

curl http://get.sensiolabs.org/php-cs-fixer.phar -o php-cs-fixer
Salin selepas log masuk
Itu sahaja Gunakan

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
Salin selepas log masuk
Anda juga boleh menggunakan Composer untuk memasang:

php-cs-fixer

Jika anda pengguna Mac, pengguna homebrew dan telah merakam homebrew/php, anda juga boleh terus:

composer global require fabpot/php-cs-fixer
Salin selepas log masuk
Atau:

brew install php-cs-fixer
Salin selepas log masuk
Jika anda perlu mengemas kini kemudian:

brew install homebrew/php/php-cs-fixer
Salin selepas log masuk
Jika dipasang melalui homebrew:

php-cs-fixer self-update
Salin selepas log masuk
Jika tiada fail boleh laku Letakkannya dalam direktori bin atau gunakan

bukannya

dalam Windows.
brew upgrade php-cs-fixer
Salin selepas log masuk

Penggunaanphp php-cs-fixer.pharphp-cs-fixer juga sangat mudah digunakan Parameter arahan yang paling asas ialah

Apabila dilaksanakan secara langsung, sebanyak mungkin kod akan diformat mengikut piawaian lalai:

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
Salin selepas log masuk

digunakan untuk mengawal tahap peraturan yang perlu digunakan: --verbosetxt

Secara lalai, semua pilihan PSR-2 dan beberapa pilihan tambahan (terutamanya berkaitan symfony ) dilaksanakan). Terdapat juga beberapa pilihan yang tergolong dalam "tahap sumbangan". Anda boleh menambahkannya secara terpilih melalui

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
Salin selepas log masuk

juga boleh digunakan jika. perlu --fixers Gunakan senarai hitam untuk menetapkan pilihan yang dilumpuhkan. Jika kedua-dua --fixers dan

ditetapkan, yang pertama mempunyai keutamaan yang lebih tinggi.
php-cs-fixer fix /path/to/dir --fixers=linefeed,short_tag,indentation
Salin selepas log masuk

Menggunakan arahan -name_of_fixer dan --fixers secara serentak boleh memaparkan ringkasan yang perlu diubah suai, tetapi sebenarnya tidak mengubahnya. -name_of_fixer

Anda juga boleh menyemak kandungan yang akan diubah suai melalui kaedah berikut, tetapi fail sebenarnya tidak akan ditukar:

--dry-run--diffKonfigurasi tersuai

pilihan tersedia Digunakan untuk menetapkan direktori dan fail terpilih untuk analisis dan pemformatan, tetapi pilihan ini hanya boleh menetapkan beberapa projek yang biasa diketahui, seperti symfony:
cat foo.php | php-cs-fixer fix --diff -
Salin selepas log masuk

Pilihan sedia ada:

--config

# For the Symfony 2.3+ branch
php-cs-fixer fix /path/to/sf23 --config=sf23
Salin selepas log masuk
konfigurasi lalai lalai

  • 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)
;
Salin selepas log masuk
di hadapan pilihan Contohnya, contoh berikut tidak menggunakan PSR-0:

<?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)
;
Salin selepas log masuk
Format di bawah keadaan lalai Tahap. pengoptimuman ialah symfony (yang paling ketat Anda boleh mengubah suai tahap ini:

-

Melalui gabungan pilihan tetapan ini, anda boleh menyesuaikan kesan yang anda inginkan dengan mudah.
<?php

$finder = Symfony\CS\Finder\DefaultFinder::create()
    ->exclude('somedir')
    ->in(__DIR__)
;

return Symfony\CS\Config\Config::create()
    ->fixers(['-psr0'])
    ->finder($finder)
;
Salin selepas log masuk

Anda juga boleh menentukan lokasi fail

melalui pilihan
<?php

return Symfony\CS\Config\Config::create()
    ->level(Symfony\CS\FixerInterface::PSR2_LEVEL)
;
Salin selepas log masuk
.

Mendayakan caching boleh mempercepatkan pelaksanaan berikutnya melalui kaedah berikut:

--config-file.php_csPemalam editor

Pemalam editor/IDE berikut boleh membantu. Anda memudahkan kerja pemformatan:

<?php

return Symfony\CS\Config\Config::create()
    ->setUsingCache(true)
;
Salin selepas log masuk

Atom

  • 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 parameter

  • function_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]

    Mesti ada baris kosong selepas pengisytiharan ruang nama; 🎜>linefeed [PSR-2]

    Semua fail PHP hanya boleh menggunakan penghujung LF (Unix); -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; ;


  • empty_return [symfony]publicprotected Jika pernyataan return tidak mengembalikan apa-apa, tulis sahaja return (tanpa return null); privateabstractfinalstatic

    extra_empty_lines [symfony]
  • 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




    object_operator [symfony]
  • () Seharusnya tiada ruang di kedua-dua hujungnya;

  • ruang_pengendali [symfony]
    Operator binari mempunyai sekurang-kurangnya satu ruang di kedua-dua hujungnya; >
    phpdoc_indent [symfony]

    phpdoc harus kekal indent;


  • 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;
    @package@subpackage
    phpdoc_short_description [symfony]

    Penerangan ringkas phpdoc hendaklah berakhir dengan
  • ,
  • 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]
    int perlu diganti dengan integerboolbooleanfloatrealdouble;
    phpdoc_types [symfony]

    hendaklah betul dalam phpdoc Gunakan huruf besar dan kecil


  • 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@typesingle_array_no_trailing_comma] Harus ada baris kosong sebelum pengisytiharan ruang nama; bukannya petikan berganda;

  • ruang_selepas_koma bertitik [symfony]
    Betulkan ruang selepas koma bertitik i--i

  • ruang_sebelum_koma bertitik [symfony]

    Lumpuhkan hanya ruang satu baris dan pemisah Cara menulis nombor;
    echospaces_cast [symfony]print
    Perlu ada ruang antara pembolehubah dan pengubah suai; 🎜>standardkan_tidak_sama [symfony]

    Gunakan
  • dan bukannya
  • ;

    Normalkan ruang antara operator ternary;
    use

    trim_array_spaces [ symfony]
  • 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
    "

Atas ialah kandungan terperinci Tidakkah anda tahu cara menggunakan alat pengekodan dan pemformatan php-cs-fixer ini?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
php
sumber:segmentfault.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!