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

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

藏色散人
リリース: 2023-04-10 20:02:01
転載
4319 人が閲覧しました

##最近、私は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 までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート