ZendFramework(以後ZF)は非常に合理的なフレームワークで、使い方を覚えさえすればデザインパターンを特に意識しなくても、奇麗なアプリケーションを作成することができます。しかし、初めて使う方にはやはり取っ付きにくさがあると思います。
今回はそんなZFは使った事ないよ。という方にまず覚えて頂きたい用語を紹介したいと思います。
コントローラー(Zend_Controller)
いわずと知れたMVCにおけるコントローラーです。WEBにアクセスがあった場合にURLを解析して、指定されたアクションを実行します。
プラグイン(Zend_Controller_Plugin)
ZFでいうところのプラグインとは、いつでも追加できて好きな時に処理を実行できるコントローラーです。ここが勘違いし易い部分かと思われます。英文ですが非常に良くまとめてらっしゃる記事を紹介します。
Friday Framework Highlight: Zend Framework MVC Request Lifecycle – zf plugins mvc ffh on e_schrade – zend php
アクションヘルパー(Zend_Controller_Action_Helper)
複数のコントローラーで同じような処理をするような場合に、このアクションヘルパーにまとめることにより、コードを奇麗で保守し易いものにします。プラグインと組み合わせるとよりダイナミックな仕組みを作る事ができます。
モデル
ZFには明確なモデルの定義がありません。(このあたりがZFの醍醐味でもあるのですが) あえていうとDBを利用するZend_Dbということになります。Zend_DbにはZend_Db_Tableというものがあり、テーブルごとに機能をカプセルかすることができます。これにデータの取得や更新をまとめると便利です。
ビュー(Zend_View)
MVCにおけるビュー。ZFにも標準に備わっています。Smartyやその他のテンプレートエンジンを利用している方も多いと思います。他のテンプレートエンジンを利用する方法は沢山紹介されておりますが、何かの機能を犠牲にしないと実現できないとなると、非常にもったいないと思います。ZFをこれから勉強される方やデザイナさんとの共同作業がない場合は純正のものをオススメします。
ビューヘルパ(Zend_View_Helper)
ビューの表示をサポートします。そのままですね。出力文字のエスケープや日付のフォーマットなどをする場合などに役に立ちます。ただこれだけだとあまり魅力的には見えないかもしれません。しかしZFの機能といのは全てが繋がっています。コントローラーなどと連動すると使い方の幅が広がります。
フォーム(Zend_Form)
定義した要素をHTMLに出力することが出来ます。非常に多機能なため慣れるまで時間がかかりますが、JavaScriptとの連動などにも考慮されているため、最近はやりのjQueryを使ったフォームもこれで作る事が出来ます。
アプリケーション(Zend_Application)
今まで紹介したような機能を制御してくれます。これにはブートストラップ(Zend_Application_Bootstrap)いう機能があり、ここにDBの接続方法やログの出力方法などをまとめて設定します。設定ファイルに記述を分けることもできますので、プログラムがよりスマートになります。今の時点で実践で利用している方は以外と少ない?ようにも思いますが、是非チャレンジしてみて下さい。