Zend PHPのサンプルはいろいろあるが、MVCはこうやれ!
というのを、はっきり書いていないので、ここに書いてみる。
(何回かに分けて書く)
今日はMVCのうち、VとCについて(つまり、画面周り)
抽象論
■基本的な画面構成
以下の構成が基本なようだ
・1画面につき、ボタンが1個ないしは数個ある
・このボタンをクリックすると、サーバーにいって、処理をする
■Zendにおける基本的な考え方
・コントローラーは、大きく2つの部分に分かれる。
フロントコントローラー:1つのアプリ?に関して1つ
アクションコントローラー:1画面につき1つのクラス
・ビューは、1画面につき1つのファイル(.phtml)になる
■つまり、画面側からみると、
1画面について、
1個のコントローラーのファイルが作成され、クラスが記述される
画面に対応するボタンが、クラス内のアクションになる
1個のビューのHTMLファイル(phtml)がある
ビューの名前は、デフォルトでは、コントローラーのアクション名
■ということは(注意点)
・現在表示している画面が、index/index.phtml画面だったとする。
この中のフォームタグのactionの指定が、
ans/kotae
だったとすると、
AnsController.phpのAnsControllerクラス内のkotaeメソッドが呼ばれ、
次に表示される画面は、
ans/kotae.phtml
となる。
フォームタグでは、呼び出すメソッドと同時に(デフォルトでなにもしないと)
次の画面指定までかかわってくるので注意
■Javaとの違い
Javaのフレームワーク、たとえば、strutsの場合、
ボタン、つまりアクションは、Actionクラスになる。
一方、Zendでは、アクションは、メソッドであり、
アクションを起動するボタンが入っている画面が、
クラスに相当する。
クラスになるものが違うので注意
■ただ、これは危険
ただ、Zendのデフォルトのこの方式は、次に表示する画面が予見できる
場合はいいが、そうでないケース、たとえば、DBアクセスをした結果、
処理を振り分けるなどというときには、やりにくい。
そのため、リダイレクト、フォワード、renderの変更などを使って、イベント処理と次画面表示をわけられる。これについては、別の機会に
というのを、はっきり書いていないので、ここに書いてみる。
(何回かに分けて書く)
今日はMVCのうち、VとCについて(つまり、画面周り)
抽象論
■基本的な画面構成
以下の構成が基本なようだ
・1画面につき、ボタンが1個ないしは数個ある
・このボタンをクリックすると、サーバーにいって、処理をする
■Zendにおける基本的な考え方
・コントローラーは、大きく2つの部分に分かれる。
フロントコントローラー:1つのアプリ?に関して1つ
アクションコントローラー:1画面につき1つのクラス
・ビューは、1画面につき1つのファイル(.phtml)になる
■つまり、画面側からみると、
1画面について、
1個のコントローラーのファイルが作成され、クラスが記述される
画面に対応するボタンが、クラス内のアクションになる
1個のビューのHTMLファイル(phtml)がある
ビューの名前は、デフォルトでは、コントローラーのアクション名
■ということは(注意点)
・現在表示している画面が、index/index.phtml画面だったとする。
この中のフォームタグのactionの指定が、
ans/kotae
だったとすると、
AnsController.phpのAnsControllerクラス内のkotaeメソッドが呼ばれ、
次に表示される画面は、
ans/kotae.phtml
となる。
フォームタグでは、呼び出すメソッドと同時に(デフォルトでなにもしないと)
次の画面指定までかかわってくるので注意
■Javaとの違い
Javaのフレームワーク、たとえば、strutsの場合、
ボタン、つまりアクションは、Actionクラスになる。
一方、Zendでは、アクションは、メソッドであり、
アクションを起動するボタンが入っている画面が、
クラスに相当する。
クラスになるものが違うので注意
■ただ、これは危険
ただ、Zendのデフォルトのこの方式は、次に表示する画面が予見できる
場合はいいが、そうでないケース、たとえば、DBアクセスをした結果、
処理を振り分けるなどというときには、やりにくい。
そのため、リダイレクト、フォワード、renderの変更などを使って、イベント処理と次画面表示をわけられる。これについては、別の機会に