ExcessiveParameterList

メソッドのパラメータが多すぎる場合に発生します。メソッドがやりすぎているか、パラメータオブジェクトが必要です。

<?php
public function createUser(
    string $firstName,
    string $lastName,
    string $email,
    string $password,
    string $phone,
    string $address,
    string $city,
    string $country,
    string $postalCode,
    bool $newsletter
): User {
    // ...
}

なぜ問題か

修正方法

パラメータオブジェクトまたはDTOを使用:

<?php
class CreateUserRequest
{
    public function __construct(
        public readonly string $firstName,
        public readonly string $lastName,
        public readonly string $email,
        public readonly string $password,
        public readonly Address $address,
        public readonly bool $newsletter = false,
    ) {}
}

public function createUser(CreateUserRequest $request): User
{
    // クリーンで集中したコード
}

閾値

レベル パラメータ数
🍝 Piccolo ≤5
🍝🍝 Medio 6-10
🍝🍝🍝 Grande 11-15
🍝🍝🍝🍝 Mamma Mia! 16+