ホームページ  >  記事  >  バックエンド開発  >  php-cs-fixer はとても便利です!コードスタイルを自動的に修正できます~

php-cs-fixer はとても便利です!コードスタイルを自動的に修正できます~

藏色散人
藏色散人転載
2021-11-29 14:49:494261ブラウズ

##最近、私はPHPのTAOを読んでいて、コードスタイルガイドの章でPHP-CS-Fixerを見ました。

php-cs-fixer は、書式設定だけでなく、コード スタイルの修正にも自動的に役立ちます。

コードを保存するときに自動フォーマットのみが必要な場合は、PhpStorm でこれを有効にすることができます:

php-cs-fixer はとても便利です!コードスタイルを自動的に修正できます~

私はこれまでに他の人が投稿したプロジェクトを見てきました。はい、少なくとも PhpStorm で保存するときの自動フォーマットはオンになっていません。

まずはphp-cs-fixerの自動修正コードを保存する方法から始めましょう。

#環境

  • PhpStorm
  • PHP 8

##php-cs のインストール - fixer

ここでグローバル インストールを使用します

composer global require friendsofphp/php-cs-fixer
プロジェクトの https://cs.symfony.com/doc/installation.html

を参照してくださいルート パスに移動し、次の内容を含む新しいファイル .php-cs-fixer.php を作成します。

<?phpuse  PhpCsFixer\Config;use PhpCsFixer\Finder;$rules = [
    &#39;@PHP80Migration&#39; => true,

    'ordered_imports' => [
        'sort_algorithm' => 'alpha',
    ],
    'class_attributes_separation' => [
        'elements' => [
            'const' => 'one',
            'method' => 'one',
            'property' => 'one',
        ],
    ],];$finder = Finder::create()
    ->in([
        __DIR__.'/app',
        __DIR__.'/config',
        __DIR__.'/database',
        __DIR__.'/resources',
        __DIR__.'/routes',
        __DIR__.'/tests',
    ])
    ->name('*.php')
    ->notName('*.blade.php')
    ->ignoreDotFiles(true)
    ->ignoreVCS(true);return (new Config())
    ->setFinder($finder)
    ->setRules($rules)
    ->setRiskyAllowed(true)
    ->setUsingCache(true);
次に、PhpStorm

php-cs-fixer はとても便利です!コードスタイルを自動的に修正できます~

# をセットアップします。

php-cs-fixer はとても便利です!コードスタイルを自動的に修正できます~

#名前: php-cs-fixer (好きなもの)
  • ファイルの種類: PHP
  • プログラム: php-cs-fixer
  • パラメータ: fix $FileDir$/$FileName$ -vvv –diff
  • 更新する出力パス: $FileDir$/$FileName$
  • 作業ディレクトリ: $ProjectFileDir$
  • 編集したファイルを自動的に保存してオブザーバーをトリガーします: デフォルトのチェックボックスを削除します
  • コンソールを表示: 常にに変更します
  • 話すべきことを伝えます

パラメータ:
  • ここではデバッグ モード-vvv が使用されており、より多くのものが表示されます。後で煩わしいと感じた場合は削除できます。
    • -diff は変更された内容を表示できますを参照してください。「コンソール ディスプレイをオンにした後」>>
    更新される出力パス: これはコピーされました。現在のエフェクトはまだ確認する必要があります。
  • 自動的に保存されます。監視プログラムをトリガーするために編集されたファイル: つまり、何かを入力する限り、それは自動的に保存され、保存するコマンドを実行しなくても php-cs-fixer をトリガーできます。個人的には手動保存の方が慣れているので、お好みに合わせて設定してください。
  • #表示コンソール: –diff と連携して変更内容を表示
#効果の例

保存すると、コードが自動的に修正され、この場合は PHP 7 以降のスタイルに修正されます。

php-cs-fixer はとても便利です!コードスタイルを自動的に修正できます~

#コンソールには次の内容が表示されます:

php-cs-fixer はとても便利です!コードスタイルを自動的に修正できます~

コンソール ディスプレイをオンにすると、

/Users/dogeow/.composer/vendor/bin/php-cs-fixer fix /Users/dogeow/PhpstormProjects/antic-api/routes/console.php -vvv --diff
Cannot load Xdebug - it was already loaded
PHP CS Fixer 3.3.2 Trinacria by Fabien Potencier and Dariusz Ruminski
Runtime: PHP 8.0.8
Loaded config default from "/Users/dogeow/PhpstormProjects/antic-api/.php-cs-fixer.php".
Using cache file ".php-cs-fixer.cache".
Paths from configuration file have been overridden by paths provided as command arguments.
F                                                                   1 / 1 (100%)
Legend: ?-unknown, I-invalid file syntax (file ignored), S-skipped (cached or empty file), .-no changes, F-fixed, E-error
   1) routes/console.php (assign_null_coalescing_to_coalesce_equal)
      ---------- begin diff ----------
--- /Users/dogeow/PhpstormProjects/antic-api/routes/console.php
+++ /Users/dogeow/PhpstormProjects/antic-api/routes/console.php
@@ -90,5 +90,5 @@
 });

 Artisan::command(&#39;test&#39;, function () {
-    $taskTag[&#39;name&#39;] = $taskTag[&#39;name&#39;] ?? &#39;url&#39;;
+    $taskTag[&#39;name&#39;] ??= &#39;url&#39;;
 });

      ----------- end diff -----------


Fixed all files in 0.024 seconds, 14.000 MB memory used

进程已结束,退出代码为 0

もちろん、コマンドラインで手動で実行してアプリディレクトリ全体をバッチ修正することもできます。または git を使用して送信前に自動的に修正するなど。

推奨学習: 「PHP ビデオ チュートリアル

以上がphp-cs-fixer はとても便利です!コードスタイルを自動的に修正できます~の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlearnku.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。