その定数は作らなくて大丈夫!覚えておきたいCakePHPのデフォルト定数
CakePHPCakePHPで使う定数はapp/bootstrap.phpに定義しておくと、どこからでもアクセスできて便利ですね!
しかしちょっと待ってください。その定数はもしかしたら最初から用意されているかもしれません。
という訳でCakePHPに予め定義されている定数の中から普段よく使うものをピックアップしてみました。
1, 期間を表す秒数
例えば1日を表す秒数として、わかりやすく 60 * 60 * 24 と表記することがありますが、CakePHPの中では次の定数を使ってしまえばもっと直感的です。
echo MINUTE; // 出力値)60
echo HOUR; // 出力値)3600
echo DAY; // 出力値)86400
echo WEEK; // 出力値)604800
echo MONTH; // 出力値)2592000
echo YEAR; // 出力値)31536000
2, 公開ディレクトリのURL・パス
ルートからの絶対パスで取得する場合
こちらも非常に直感的に用意されているかと思います。ただしimgディレクトリは「IMG」ではないので注意。
もっともHTMLヘルパーを使っていればこれらのディレクトリは明示せずに到達できるので使う頻度はやや微妙…。
echo WWW_ROOT; // 出力例)/app/webroot/
echo CSS; // 出力例)/app/webroot/css
echo IMAGES; // 出力例)/app/webroot/img
echo JS; // 出力例)/app/webroot/js
URLで取得したい場合
上の定数に"_URL"を付けるだけでOKです。
echo CSS_URL; //出力例)css/
echo IMAGES_URL; //出力例)img/
echo JS_URL; //出力例)js/
3, ベースURL
サイトルートを指し示すURLです。
これって結構作ってしまいがちな定数No,1じゃないでしょうか。
echo FULL_BASE_URL; // 出力例)http://14-00.com
番外。
自分自身のURL
定数ではありませんが、今見ているページのURLを取得したい時に使います。
第1引数はルーティングの配列を指定できますが、指定しないことでリクエストされたURLを出力します。
第2引数はtrueならhttp://ドメイン名/~から出力します。
echo $this->Html->url(null, true); // 出力例)http://14-00.com/archives/23
echo $this->Html->url(null, false); // 出力例)/archives/23
コントローラー名とアクション名
コントローラー名は$this->name, アクション名は$this->actionで取得します。
echo $this->name; // 出力例)Posts
echo $this->action; // 出力例)edit