[ステップアップ! CakePHP]便利なComponent, Helper, Behavior, Plugin特集
iPad、予約して買ったtanakaです。Appleの製品で初めて発売日に買いました。Safari、地図、写真の操作性はクセになりますね!
CakePHP連載の4回目では便利なコンポーネントやヘルパーをまとめてご紹介いたします。
コンポーネント - Qdmail
Qdmailはメールを送るためのライブラリです。文字化けに悩まされることがほとんどない(私が使う限りでは1度もありません。)、CakePHPのコンポーネントとして使うことができるという特徴があります。
メールを送るときのプログラムの書き方を見て頂くとわかりますが、非常にすっきりとした記述でメールを送ることができます。また、CakePHPのビューレンダリングのしくみを利用してメール本文を生成でき、共通の署名をレイアウトに切り離すといった使い方ができます。
コンポーネント/ヘルパーなど - Ktai Library for CakePHP
携帯サイト構築で求められている機能がまとまっているライブラリです。
クッキーに非対応の機種のためにリンクやリダイレクトのときに特定の文字列を付与するのはソースコードの見通しが悪くなるかもしれません。Ktai Libraryにはリダイレクトやリンク生成のメソッドが用意されていて、それを使うと、クッキー非対応の機種のときだけクエリを付与したリンクを作ることなどができます。
絵文字もキャリアにあわせた出力を行うことができます。PHPアプリケーション内部ではUTF-8を使いながら、出力をSJISにすることもヘルパーの機能でできます。
プラグイン - DebugKit for CakePHP
開発時に役立つ情報を提供するプラグインです。不要なときはコンパクトに折りたたむことができます。通常、デバッグレベルを2以上にするとSQLログが下に表示されますが、DebugKitを導入するとDebugKitのツールバーの一つに収まっています。重いSQLや、システムのパフォーマンス計測に使える機能があります。
ビヘイビア - Containable Behavior
こちらは、RDBMSの利用と切り離せないビヘイビアです。このビヘイビアはアソシエーションを沢山定義しているときにもっとも力を発揮します。あらかじめ定義したアソシエーションを一時的に外して、問い合わせしたいときは、recursive=1としたり、unbindModel()メソッドを使って不要な情報を取得しないようにできますが、Containable Behaviorを使うとfindメソッドのオプションで、周辺のモデルのデータを取得するかどうかを選択できます。