シリーズ「ZendにおけるMVC(Javaフレームワークとの違い)」の続き
前回は、Zendの画面構成の問題から、こうするとうまく行くという画面遷移の例を書いた。
具体的には、このようにする。
この方法だと、Actionから、フォワードすることになり、
JavaのStrutsフレームワークに対応する。
具体的には、
となる。
今回は、具体的な、作成方法を例に基づいて書いてみる
■例について
昨日、紹介した例について作成する。
つまり、
今、2つの画面がある。
・はじめに、この画面が表示される。

これを、画面名indexとしよう
そして、この画面のボタンを、kotaeという名前にする。
・上記の画面のボタンが押されると、この画面が表示される。

これを、画面名ansとしよう
そして、この画面のボタンを、topという名前にする。
今回は、このWebアプリをZendAdd2という名前で作成する
■作成準備
作成に取り掛かる際に、
apacheのドキュメントフォルダ(htdocs)の下に、
ZendAdd2というフォルダを作成し、そのフォルダ内に、
.htaccess
index.html
と言うファイルと、
zendapps
というフォルダを作成する(バージョンによっては、zendappsじゃないかも)
このとき、.htaccessというファイルはWindowsでは作れない
・・・作れないはずなのだが、私の場合、1回何かの弾みでできて?
(なにかを解凍してできた?)その後、フォルダごとコピー、そのファイルを修正
している。これで問題なく動作している。
.htaccessの内容は、以下のとおり
index.phpの内容は、以下のとおり
最後に>はいらない(以下、基本的にそう)
■1.1つの画面につきコントローラーとビュー作成
上述のzendappsの下に、controllers,views,models
というフォルダを作成し、controllers,viewsについては、
昨日示した構成(下のとおり)で、ファイルを作成する
(中身については後述)
2.画面に対応するViewのファイル
画面indexに対応する画面のファイル
views/scripts/index/index.phtml
の中身は、こんなかんじ。
ボタンのアクションkotaeは、Formのactionで指定されている。
画面ansに対応する画面のファイル
views/scripts/ans/index.phtml
の中身は、こんなかんじ。
ボタンのアクションtopは、Formのactionで指定されている。
■画面に対応するコントローラー
画面indexに対するコントローラー
controllers/IndexController.php
に書かれる内容は、こんなかんじ。
画面のためのindexActionと、
ボタンkotaeが押されたときに対応するkotaeActionがあり、
kotaeActionに対応する画面は、ここではなく
$this->_forward('index','ans');
で、ans画面に行くようにしています。
-----
画面ansに対するコントローラー
controllers/AnsController.php
に書かれる内容は、こんなかんじ。
画面のためのindexActionと、
ボタンtopが押されたときに対応するtopActionがあり、
topActionに対応する画面は、ここではなく
$this->_forward('index','index');
で、index画面に行くようにしています。
次回はモデルについて
前回は、Zendの画面構成の問題から、こうするとうまく行くという画面遷移の例を書いた。
具体的には、このようにする。
1.1つの画面につき 1つのコントローラー 1つのViewのフォルダーを用意 2.画面に対応するViewのフォルダーには index.phtmlに、表示する画面内容を書く ボタン等、イベント(アクション)が起こるところについては、 アクション先(例:フォームのactionで指定する先)を 画面名/自分で勝手につけたアクション名 とする 3.画面に対応するコントローラーでは、 3-1)indexActionと(index.phtmlの表示のため) 上記2で挙げた「自分で勝手につけたアクション名」Action を作成する。 3-2)上記3-1で作った、 「自分で勝手につけたアクション名」Actionの 最後(に実行する部分)で、 $this->_forward('index','画面名'); として、次画面に遷移させる (indexと書いてあるのは、2によって、index.phtmlが 作成されることが保証されているから) |
この方法だと、Actionから、フォワードすることになり、
JavaのStrutsフレームワークに対応する。
具体的には、
|
となる。
今回は、具体的な、作成方法を例に基づいて書いてみる
■例について
昨日、紹介した例について作成する。
つまり、
今、2つの画面がある。
・はじめに、この画面が表示される。

これを、画面名indexとしよう
そして、この画面のボタンを、kotaeという名前にする。
・上記の画面のボタンが押されると、この画面が表示される。

これを、画面名ansとしよう
そして、この画面のボタンを、topという名前にする。
今回は、このWebアプリをZendAdd2という名前で作成する
■作成準備
作成に取り掛かる際に、
apacheのドキュメントフォルダ(htdocs)の下に、
ZendAdd2というフォルダを作成し、そのフォルダ内に、
.htaccess
index.html
と言うファイルと、
zendapps
というフォルダを作成する(バージョンによっては、zendappsじゃないかも)
このとき、.htaccessというファイルはWindowsでは作れない
・・・作れないはずなのだが、私の場合、1回何かの弾みでできて?
(なにかを解凍してできた?)その後、フォルダごとコピー、そのファイルを修正
している。これで問題なく動作している。
.htaccessの内容は、以下のとおり
|
index.phpの内容は、以下のとおり
|
最後に>はいらない(以下、基本的にそう)
■1.1つの画面につきコントローラーとビュー作成
上述のzendappsの下に、controllers,views,models
というフォルダを作成し、controllers,viewsについては、
昨日示した構成(下のとおり)で、ファイルを作成する
(中身については後述)
|
2.画面に対応するViewのファイル
画面indexに対応する画面のファイル
views/scripts/index/index.phtml
の中身は、こんなかんじ。
|
ボタンのアクションkotaeは、Formのactionで指定されている。
画面ansに対応する画面のファイル
views/scripts/ans/index.phtml
の中身は、こんなかんじ。
|
ボタンのアクションtopは、Formのactionで指定されている。
■画面に対応するコントローラー
画面indexに対するコントローラー
controllers/IndexController.php
に書かれる内容は、こんなかんじ。
|
画面のためのindexActionと、
ボタンkotaeが押されたときに対応するkotaeActionがあり、
kotaeActionに対応する画面は、ここではなく
$this->_forward('index','ans');
で、ans画面に行くようにしています。
-----
画面ansに対するコントローラー
controllers/AnsController.php
に書かれる内容は、こんなかんじ。
|
画面のためのindexActionと、
ボタンtopが押されたときに対応するtopActionがあり、
topActionに対応する画面は、ここではなく
$this->_forward('index','index');
で、index画面に行くようにしています。
次回はモデルについて