Cakephp4では、「どこに定数を定義するのか?」というのは諸説ありますが、本記事はモデルテーブルに定数を定義した上で、それをビューにロードするという方法です。
モデルテーブルに定数を定義する
<?php declare(strict_types=1); namespace App\Model\Table; use Cake\ORM\Table; class HogesTable extends Table { /** * ステータスの定数 * * @var array */ public const STATUS = 1; }
シンプルに定数の STATUS
(ステータス)に対し 1 を定義しました。
次はビューに定数をロードします。
ビュー(テンプレート)にて、定数をロードする
use App\Model\Table\HogesTable; debug(HogesTable::STATUS); exit; // 出力結果: 1
冒頭でもお話したように、Cakephp は定数ファイルを configディレクトリ 以下に定義することも可能ですし、モデルテーブルごとに定義することも可能です。
定数の数が多く、各モデルごとに切り分ける方が管理の見通しがよくなりそうなら、モデルテーブルごとに定義するほうがいいかもしれませんね。(観点によりますが)