【laravel】laravel-enum を使ってlaravelでenumを実装する

なにこれ

laravelでenumを実装したいと思いました。調べてみると、php8.1からphpにenumの機能が実装されたとか…

ただ、enumを実装するためにphpのバージョンを上げるのもコスパ悪いし…

そんな時にlaravelではlaravel-enumというライブラリでenumが実装することができます。

今回は、laravel-enumでのenumの実装方法をご紹介していきます。

 

実装

  1. laravel-enumのインストール
  2. enumファイルを作成

1 laravel-enumのインストール

以下コマンドでlaravel-enumをインストールします

composer require bensampo/laravel-enum

laravel-enumのGithubにも記述されているように、最新版はlaravel9以上が対象になっています。

それ以下のバージョンでは、laravel-enumのバージョンを落としてインストールする必要があります。

GithubのREADMEでは全てのバージョンのコマンドが同じになっているのですが、それだと最新版がインストールされてしまうので、明示的にバージョンを指定してインストールする必要があります。

以下は、バージョン4.0をインストールするコマンドになります。

composer require bensampo/laravel-enum:"4.0"

 

2 enumのファイルを作成

以下コマンドでenum用のファイルを作成します。

php artisan make:enum ファイル名

以下は、作成されたファイルにenumを設定した例になります。

<?php

namespace App\Enums;
use BenSampo\Enum\Enum;

final class RadioStationType extends Enum . . . ①
{
  const NIPPONBROADCASTING = 0;
  const NIPPONCULTUREBROADCASTING = 1;
  const TOKYOFM = 2;
}

①クラス内に定数としてenumを設定します。

これでenumのファイルは完成です。

以上でenumを使用することができます。

以下使用例です。

$station = RadioStationType::NIPPONBROADCASTING();
$station->key
// NIPPONBROADCASTING
$station->value
// 0

そのほかにも使い方は様々なので、気になった方はGithubを見てみてください。

 

以上!!!!!!!