Laravel8 constをクラスに定義する方法

定数として/config/const.phpに定義するのも悪くはないが、constをクラスとして扱うと値の加工などが出来て悪くない。

/config/const.php

<?php
return [
    'XXXX' => 'abc',
    'YYYY' => 'def',
    'ZZZZ' => 'ghi',
];

ProjectConst.phpというクラスをApp/Constsフォルダに作ってみる
/App/Consts/ProjectConst.php

<?php
namespace App\Consts;

class ProjectConst
{
	public const XXXX = 'abc';
	public const YYYY = 'def';
	public const ZZZZ = 'ghi';

    public static function func()
    {
        return self::XXXX.
               self::YYYY.
               self::ZZZZ;
    }
}

■使用方法

controller側

use App\Consts\ProjectConst;
   ・
   ・
   ・
$xxxx = ProjectConst::XXXX;

view側

{{ App\Consts\ProjectConst::XXXX }}

/config/app.phpに”ProjectConst”を定義すれば

    'aliases' => [
        ・
        ・
        ・
        'ProjectConst' => App\Consts\ProjectConst::class,
    ],

controllerのuseの定義が

// use App\Consts\ProjectConst;
 ↓
use ProjectConst;

となり、viewで使用時は

App\Consts\ProjectConst::XXXX;
 ↓
ProjectConst::XXXX;

となり、少し楽になる。

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です