些細な発見 ~CakePHPの定数編~

この記事はだいぶ前に書かれたものなので情報が古いかもしれません

タイトルの通りごくごく些細な発見……というか今まで知らなかっただけなんですけど、個人的に地味に役に立つことなので、一応書いときます。

CakePHPのコア部分に、basics.phpってのがありますよね。ディレクトリで言うと/cakeの直下ですね。

このbasics.phpの中にね、こんな定数が定義されてるんですよ。

/**
 * Basic defines for timing functions.
 */
  define('SECOND', 1);
  define('MINUTE', 60);
  define('HOUR', 3600);
  define('DAY', 86400);
  define('WEEK', 604800);
  define('MONTH', 2592000);
  define('YEAR', 31536000);

ぶっちゃけ、今まで知りませんでした。ヘルパーなんかで経過時間みたいなのを表示するような処理を何度か書いたことがあるんですけど、毎回電卓使って秒数を出して計算するメソッドを書いてました。

でもこの定数を使えば良かったんやね。

日数の差を出したりするときに使えると思います。

まあ、ほんとに些細な発見です。別にこれのおかげで劇的に開発の効率が上がったりは、たぶんしないでしょう。

でも冒頭でも言ったように、個人的には地味に役立つ嬉しい定数です。個人的にはね。

たかなし 2012年12月10日 16:56:44
他の開発者さまが書いたコードの中に、DAY という定数を見つけて、php にこんな定数が定義されていたのだなと調べてみたら、どうも、こんな定義はないらしい。。。

なんと CakePHP で定義されていたんですね。
私はそれまで電卓をたたくの面倒で 24 * 60 * 60 と入れていました。
劇的にサーバーの負荷が減ったりは(笑略) スマートに書けていいですね。
まっち~(管理人) 2012年12月13日 11:03:03
>たかなしさん
これでもしサーバーの負荷が劇的に減るなら、もう喜び勇んで使いまくるところですね(笑)
僕は時間を割り出すようなヘルパーを書くたびに電卓叩いてたので、86400っていう数字がすっかり頭に入ってしまいました。
僕にとってはもう、「86400」が定数になっちゃってますね(笑)
もしかしたら何か関連しているかも?