Open1

Laravel開発Tips

capybaraさんcapybaraさん

Modelに対してパラメータを渡すとき、下記のようにすると良い

HogeController.php
Hoge::fuga($name, $description, $image_url);
Hode.php
public function fuga(string $name, string $description, string $image_url)
{
    self::update(
        "name" => $name,
        "description" => $description,
        "image_url" => $image_url,
    );
}

メリット

  • 可読性の向上: 関数の引数が明示的であり、どのパラメータが渡されるかが一目瞭然です。
  • 型安全: 関数の引数に型ヒントを付けることで、予期しない型によるエラーを防ぐことができます。
  • 自動補完: IDEによるパラメータの自動補完が利用できるため、開発効率が向上します。

逆に下記のようにすると良くない

HogeController.php
Hoge::fuga($hogeArray);
Hode.php
public function fuga(?array $hogeArray)
{
    self::update(
        "name" => $hogeArray['name'] ?? null,
        "description" => $hogeArray['description'] ?? null,
        "image_url" => $hogeArray['image_url'] ?? null,
    );
}

デメリット

  • 可読性の低下: 配列内のキーが関数宣言から見えないため、関数がどのパラメータを期待しているかが明確ではありません。
  • エラーの原因: 配列に期待したキーが存在しない場合、予期しないエラーが発生する可能性があります。キーの存在チェックを行う必要があり、コードが冗長になります。
  • 自動補完が効かない: 配列のキーはIDEによる自動補完が効かないため、誤記のリスクが増えます。