LoginSignup
3
1

More than 3 years have passed since last update.

【Laravel】マジックナンバーの解決方法

Last updated at Posted at 2020-05-23

マジックナンバーとは

プログラムにおけるマジックナンバー(英: magic number、魔法の数字)とは、何らかの識別子もしくは定数として用いられる、プログラムのソースコード中に書かれた具体的な数値である。

ex)

UserController
public function store()
{
    User::create(['user_type' => 1);
}

あとあと1ってなによ?となる

解決方法

1 定数

クラス定数として定義しておいて、使いたいところで呼び出す

User

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    protected $fillable = [
        'user_type',
    ];

    const ADMIN  = 1;
    const NORMAL = 2;
    const ZAKO   = 3;
}

UserController
public function store()
{
    User::create(['user_type' => User::ADMIN);
}

Enum

列挙型

PHPにはないので、パッケージなりで導入
色々あるので用途に合うやつ選択

数が多いならこっちがよさげ...?

composer require bensampo/laravel-enum

<?php

namespace App\Enums;

use BenSampo\Enum\Enum;

final class UserType extends Enum
{
    const Admin = 1;
    const Normal = 2;
    const Zako = 3;
}
UserController
public function store()
{
    User::create(['user_type' => UserType::Admin);
}

Config

usertype.php
<?php

return [
    'Admin' => 1,
    'Normal' => 2,
    'Zako' => 3,
];
UserController
public function store()
{
    User::create(['user_type' => config('usertype.Admin')]);
}

不備、より良い方法有りましたら教えていただけますと助かります

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1