ZF#03 基本+隠しディレクトリ構成

今日はこんな天気

前回:ZF#02 10分で試せる Zend Framework - カタコト日記

とりあえず、動かすことには成功した Zend Framework

せっかくなので、前回入れてみたサンプルキットの中を見ながらお勉強。

MVC ってなーに?

Zend Framework にかぎらず、最近のフレームワークMVC をベースにしています。

難しい説明は他サイトにゆずるとして、ここではそのイメージだけを理解。

コントローラ Controller

「あのデータがほしい」「これ表示しといてね」のように、Model と View に

指示を出して、全体の進行を管理するのが仕事。自分で細かい作業はやらない。

モデル Model

Controller の指示にもとづいて、データをとってきたり、計算をする実作業の要。

データ(DB、XMLRSS、ファイル、…)を管理(保存、読み込み、…)する仕事ですね。

ビュー View

Web アプリケーションの場合、HTML を担当。必要なデータは Controller が

すべて渡してくれるので、あとはそれをきれいに整形することに専念。


MVC はアプリの構造パターンの一つで、各部分の再利用、取り替えなどがカンタンに

なるだけでなく、実作業において分業もしやすくなるというメリットがあります。


ってところまでを理解して次へ。具体例を見ないとわかんないよね。(´∀`*)

基本ディレクトリ構成

サンプルの中身はこんな具合。



Zend Framework はかなり自由度の高いフレームワークで、ディレクトリ構造も自分の

好きなように設定できます。(言い換えると、自分でいろいろ決めないと始められない…)


最初に決めるのは application ディレクトリの位置。公開されたディレクトリ(例:

/home/koto2/public_html)に置く必要はないので、別の場所(例:/home/koto2 直下)

に置いておきましょう。慣れないと変な感じだけど、セキュリティ上のメリットもあります。


次に application の中には何を配置するか。本家のマニュアル では次のようになってます。



要は、MVC に相当するファイルを置く場所を作りなさいってことですね。サンプルも

ほぼこの基本構成にそっていることがわかります。ちなみに、Zend Framework

動かすのには、マニュアルに出てきてる4つのファイルが最低限必要です。

  • .htaccess(URL の書き換えを担当)
  • index.php(書き換えられたすべてのアクセスを受け取る)
  • IndexController.php(View に表示しなさいと指示を出す)
  • index.phtml(HTML を整形する)

隠しディレクトリ構成?

で、基本はこれで OK なんだけど、実は Zend Framework にはいろいろと拡張できるところが

あって、それらを使う(自作する)ならディレクトリを追加する必要が出てきます。たとえば

  1. アクションヘルパー (アクションコントローラに共通の機能を追加できる)
  2. プラグイン (コントローラの処理イベントに同期して実行できる)
  3. ビューヘルパー (HTML を整形する際に使う共通の機能を追加できる)
  4. ビューフィルタ (ビュースクリプトレンダリングした後で使用するフィルタ)
  5. Zend_Layout (HTML をテンプレート管理できる2ステップビューパターン)


など。最後のやつは、サンプルにもこっそり出てきてましたね。

別に隠されてるわけじゃないと思うんだけど、マニュアルにはどこに置けばいいのか

示されてないものもあって、結局自分で考えないといけなかったりする。(´・ω・`)

まぁ、意味を考えれば自明ではあるんだけど。最初はとまどうよね。


というわけで、先ほどのディレクトリ構成を見直してみました。*1

これで Zend Framework + MVC に関わる部分はだいたいカバーできてるかな。



役割の違いだとか、これらをどうやって設定するかはまた次回!


*1:plugins って controllers の下でいいのかなぁ?models の下とか、controllers と同階層も考えたんだけど…。