YNSTakeru / sail-sandbox

0 stars 0 forks source link

Laravel 10にPHP-CS-Fixerを導入し、PSR2のコーディング規約で整形する #15

Open YNSTakeru opened 5 months ago

YNSTakeru commented 5 months ago

タスク概要

Laravel 10プロジェクトにPHP-CS-Fixerを導入し、PSR2のコーディング規約に従ってコードを整形します。

背景

プロジェクトのコードベースが増えるにつれて、コードの整合性と可読性を保つことが重要になります。PHP-CS-FixerとPSR2のコーディング規約を導入することで、これを達成します。

ハイアーキテクチャ

graph LR
A[Composer] --> B[PHP]
B --> C[Laravel 10]
C --> D[PHP-CS-Fixer]
D --> E[PSR2]

課題

現在、コードの整形は手動で行われており、一貫性と可読性が保証されていません。

解決策

PHP-CS-Fixerを導入し、PSR2のコーディング規約に従って自動的にコードを整形します。

やること

フォルダとファイルを作成

mkdir .vscode
touch .vscode/settings.json

settings.json

{
    "emeraldwalk.runonsave": {
        "commands": [
            {
                "match": "\\.php$",
                "cmd": "php-cs-fixer fix ${file}"
            }
        ]
    }
}

.gitignore

+.php-cs-fixer.cache
  1. .php-cs-fixer.phpファイルを追加
    +<?php
    +
    +$finder = PhpCsFixer\Finder::create()
    +    ->in(__DIR__);
    +
    +return (new PhpCsFixer\Config())
    +    ->setRules([
    +        '@PSR2' => true,
    +        'array_syntax' => ['syntax' => 'short'],
    +    ])
    +    ->setFinder($finder);
  2. .php-cs-fixer.cacheファイルを追加
    +<?php
    +
    +$finder = PhpCsFixer\Finder::create()
    +    ->in(__DIR__);
    +
    +return (new PhpCsFixer\Config())
    +    ->setRules([
    +        '@PSR2' => true,
    +        'array_syntax' => ['syntax' => 'short'],
    +    ])
    +    ->setFinder($finder);
  3. app/Http/Controllers/Controller.phpapp/Models/User.phpのファイルをリファクタリング

    diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php
    index 77ec359..f1406be 100644
    --- a/app/Http/Controllers/Controller.php
    +++ b/app/Http/Controllers/Controller.php
    @@ -8,5 +8,6 @@
    
    class Controller extends BaseController
    {
    -    use AuthorizesRequests, ValidatesRequests;
    +    use AuthorizesRequests;
    +    use ValidatesRequests;
    }
    diff --git a/app/Models/User.php b/app/Models/User.php
    index 4d7f70f..7b27eb7 100644
    --- a/app/Models/User.php
    +++ b/app/Models/User.php
    @@ -10,7 +10,9 @@
    
    class User extends Authenticatable
    {
    -    use HasApiTokens, HasFactory, Notifiable;
    +    use HasApiTokens;
    +    use HasFactory;
    +    use Notifiable;
  4. database/migrationsディレクトリ内の複数のマイグレーションファイルをリファクタリング
    
    --- a/database/migrations/2014_10_12_000000_create_users_table.php
    +++ b/database/migrations/2014_10_12_000000_create_users_table.php
    @@ -4,8 +4,7 @@
    use Illuminate\Database\Schema\Blueprint;
    use Illuminate\Support\Facades\Schema;

-return new class extends Migration -{ +return new class() extends Migration { /**

-return new class extends Migration -{ +return new class() extends Migration { /**

-return new class extends Migration -{ +return new class() extends Migration { /**

-return new class extends Migration -{ +return new class() extends Migration { /**

やらないこと

このIssueでは、他のコーディング規約の導入や、他のコード整形ツールの導入は行いません。

テスト方案

PHP-CS-Fixerが正しく導入され、PSR2のコーディング規約に従ってコードが整形されることを確認します。