ひとりまとめ

もろもろのメモ

CakePHP 自作関数群の置き場所と使い方

オブジェクト指向になりきれてない僕なのでもっとよい構成方法があるのではないかと思いつつも、モデルでつかう雑多な処理用関数をひとまとめにした別ファイルにしています。

そういう「MVCそのものじゃあないファイル」の置き場所はどこがいいのだろう?と思ってみたところ、/app/vendors以下がどうも適当っぽいみたい。

ということで、さっそくこの場所へ関数群phpを配置。置くだけなので楽勝。さて、これをどう呼び出して使うのか??


これには専用の呼び出し方があるらしく、
 App::import('Vendor', 'func');
という感じで呼び出すことができるようです。(/app/vendors/func.phpを呼び出す場合でかつCakePHP1.2以降だそうです)
vendors直下ではなくディレクトリをきったりする場合は、ちょっと書き方注意のもよう。
参考:Vendorの例


さて呼び出したら、今度は使う番。コントローラーからモデルのアクションを呼び出すときのように、$this->なんちゃら〜という書き方をするのかと思ってみたところ、いきなり関数名で呼べるようです。つまり普段のrequire_onceとかと同じ感覚で使えるようです。


また、呼び出すファイル名に大文字が含まれていると_(アンダースコア)で区切られていると認識するらしい。たとえば
 App::import('Vendor', 'JSON');
という指定でJSON.phpというファイルを呼び出すつもりでいると、実際にはj_s_o_n.phpというファイルを探しに行くみたい。面倒でなければ小文字のファイル名にしておくのがよさげ。


呼び出し方は見つかったけれど使い方の記述がなくて、少し焦ったためメモ。
まぁ、きっと当たり前なんでしょうねぇ〜。不覚。