Laravel

【Laravel9】cs-fixを設定する方法

はじめに

Laravel 9はPHPフレームワークの最新バージョンで、開発者により良い開発体験を提供しています。

開発者はコードの品質を維持するために、コーディングスタイルの統一が重要だと考えています。

PHP-CS-Fixerは、PHPコードのスタイルを自動的に修正するツールです。

この記事では、Laravel 9プロジェクトでPHP-CS-Fixerを簡単に設定する方法を説明します。

PHP-CS-Fixerのインストール

まず、PHP-CS-Fixerをプロジェクトにインストールする必要があります。

これは、Composerを使って行うことができます。以下のコマンドを実行して、PHP-CS-Fixerをインストールしましょう。

composer require --dev friendsofphp/php-cs-fixer

設定ファイルの作成

次に、PHP-CS-Fixerの設定ファイル(.php-cs-fixer.dist.php)をプロジェクトのルートディレクトリに作成します。

以下の内容を設定ファイルに追加してください。

<?php

use PhpCsFixer\Config;
use PhpCsFixer\Finder;

$finder = Finder::create()
    ->in([
        __DIR__.'/app',
        __DIR__.'/config',
        __DIR__.'/database',
        __DIR__.'/routes',
        __DIR__.'/tests',
    ])
    ->name('*.php')
    ->ignoreDotFiles(true)
    ->ignoreVCS(true);

$config = new Config();

return $config->setRules([
        '@PSR12' => true,
        'array_syntax' => ['syntax' => 'short'],
        'ordered_imports' => ['sort_algorithm' => 'alpha'],
        'no_unused_imports' => true,
    ])
    ->setFinder($finder);

この設定ファイルは、Laravel 9プロジェクトで一般的に使用されるディレクトリを対象にしています。

また、PSR-12コーディング規約に準拠するように設定されており、いくつかの追加ルールも設定されています。

スクリプトの追加

composer.jsonファイルに以下のスクリプトを追加することで、PHP-CS-Fixerを簡単に実行できるようになります。

"scripts": {
    "cs-fix": "php-cs-fixer fix --config=.php-cs-fixer.dist.php --ansi",
    "cs-check": "php-cs-fixer fix --config=.php-cs-fixer.dist.php --ansi --dry-run"
}

これで、以下のコマンドでコードスタイルを修正できるようになります。

composer cs-fix

また、コードスタイルのチェックだけを行いたい場合は、以下のコマンドを使用します。

composer cs-check

これらのコマンドは、設定ファイルで指定されたディレクトリ内のPHPファイルを対象に、

コーディングスタイルの修正やチェックが行われます。

Gitのpre-commitフックに追加 (オプション)

さらに、PHP-CS-FixerをGitのpre-commitフックに追加することで、コミット前に自動的にコードスタイルを修正することができます。

これにより、コーディングスタイルが一貫して維持されることが保証されます。

プロジェクトのルートディレクトリに.git/hooks/pre-commitファイルを作成し、以下の内容を追加してください。

#!/bin/sh
FILES=$(git diff --cached --name-only --diff-filter=ACMR "*.php" | sed 's| |\\ |g')
[ -z "$FILES" ] && exit 0

echo "Running PHP-CS-Fixer:"
echo "$FILES" | xargs ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php --quiet

echo "Staging changes:"
echo "$FILES" | xargs git add

exit 0

このスクリプトは、コミット前にPHP-CS-Fixerを実行し、修正されたファイルを自動的にステージングします。

最後に、pre-commitファイルに実行権限を与えてください。

chmod +x .git/hooks/pre-commit

これで、Gitのpre-commitフックにPHP-CS-Fixerが追加されました。

これにより、コミット前にコーディングスタイルが自動的に修正されるようになります。

まとめ

Laravel 9プロジェクトでPHP-CS-Fixerを設定する方法を説明しました。

これにより、コーディングスタイルの統一が容易になり、プロジェクト全体の品質が向上します。

簡単な手順で、PHP-CS-Fixerをプロジェクトに組み込み、コードの品質を維持しましょう。

-Laravel