ZF#03 基本+隠しディレクトリ構成
前回:ZF#02 10分で試せる Zend Framework - カタコト日記
とりあえず、動かすことには成功した Zend Framework。
せっかくなので、前回入れてみたサンプルキットの中を見ながらお勉強。
MVC ってなーに?
Zend Framework にかぎらず、最近のフレームワークは MVC をベースにしています。
難しい説明は他サイトにゆずるとして、ここではそのイメージだけを理解。
コントローラ Controller
「あのデータがほしい」「これ表示しといてね」のように、Model と View に
指示を出して、全体の進行を管理するのが仕事。自分で細かい作業はやらない。
ビュー View
Web アプリケーションの場合、HTML を担当。必要なデータは Controller が
すべて渡してくれるので、あとはそれをきれいに整形することに専念。
MVC はアプリの構造パターンの一つで、各部分の再利用、取り替えなどがカンタンに
なるだけでなく、実作業において分業もしやすくなるというメリットがあります。
ってところまでを理解して次へ。具体例を見ないとわかんないよね。(´∀`*)
基本ディレクトリ構成
サンプルの中身はこんな具合。
Zend Framework はかなり自由度の高いフレームワークで、ディレクトリ構造も自分の
好きなように設定できます。(言い換えると、自分でいろいろ決めないと始められない…)
最初に決めるのは application ディレクトリの位置。公開されたディレクトリ(例:
/home/koto2/public_html)に置く必要はないので、別の場所(例:/home/koto2 直下)
に置いておきましょう。慣れないと変な感じだけど、セキュリティ上のメリットもあります。
次に application の中には何を配置するか。本家のマニュアル では次のようになってます。
要は、MVC に相当するファイルを置く場所を作りなさいってことですね。サンプルも
ほぼこの基本構成にそっていることがわかります。ちなみに、Zend Framework を
動かすのには、マニュアルに出てきてる4つのファイルが最低限必要です。
隠しディレクトリ構成?
で、基本はこれで OK なんだけど、実は Zend Framework にはいろいろと拡張できるところが
あって、それらを使う(自作する)ならディレクトリを追加する必要が出てきます。たとえば
- アクションヘルパー (アクションコントローラに共通の機能を追加できる)
- プラグイン (コントローラの処理イベントに同期して実行できる)
- ビューヘルパー (HTML を整形する際に使う共通の機能を追加できる)
- ビューフィルタ (ビュースクリプトをレンダリングした後で使用するフィルタ)
- Zend_Layout (HTML をテンプレート管理できる2ステップビューパターン)
など。最後のやつは、サンプルにもこっそり出てきてましたね。
別に隠されてるわけじゃないと思うんだけど、マニュアルにはどこに置けばいいのか
示されてないものもあって、結局自分で考えないといけなかったりする。(´・ω・`)
まぁ、意味を考えれば自明ではあるんだけど。最初はとまどうよね。
というわけで、先ほどのディレクトリ構成を見直してみました。*1
これで Zend Framework + MVC に関わる部分はだいたいカバーできてるかな。
役割の違いだとか、これらをどうやって設定するかはまた次回!
*1:plugins って controllers の下でいいのかなぁ?models の下とか、controllers と同階層も考えたんだけど…。