見出し画像

Laravel学習記録 #036 クラスの定数定義を試す

Laravelでクラスの定数定義を試したものをまとめています。

「定数」の扱いをLaravelの標準機能を使ってconfigに設定することがありますが、configで定数を管理するのはなぁ。。て時の別案です。
専用にクラスを作成し、定数を管理します。

定数クラスを試す

クラス作成

app配下にConstsディレクトリを作成し、専用のクラスを配置します。
クラスのメンバ変数として定数を定義します。

/app/Consts/AppConst.php

class AppConst
{
    public const HOGE = 'hoge';
    public const FOO = 'foo';
    public const LIST = [
        'key1' => 'val1',
        'key2' => 'val2',
    ];
}


エイリアス登録

クラスの作成ができたら、呼び出しやすいようにエイリアスへ登録します。

config/app.php

'aliases' => Facade::defaultAliases()->merge([
        'AppConst' => App\Consts\AppConst::class,
    ])->toArray(),


呼び出す

コントローラーで呼び出してみます。

public function index()
{
    dd( \AppConst::HOGE, \AppConst::FOO, \AppConst::LIST );
}

結果

"hoge"
"foo"
array:2 [▼ 
  "key1" => "val1"
  "key2" => "val2"
]

それぞれ確認できました。

連想配列にアクセスするなら

public function index()
{
    dd( \AppConst::LIST['key1'] );
}

結果

"val1"



これでいいですね。
使い勝手良さそう。
ただVSCodeでエイリアス登録の記述にエラー線が引かれているのが気になる。

この記事が気に入ったらサポートをしてみませんか?