前回の準備編でZend Frameworkをインストールした。
本当はHello Worldを出すところまで書きたかったけど、やる気が出なかった。
今回こそHello World出すぞ!
参考にするのは CodeZineだけど、この例なんか複雑なことしてる。
なので、参考にはしつつ簡単な Hello Worldを作るよ。
1.Hello WorldをMVCで出す
CodeZineのサンプルは、自分には難しすぎた。
いきなりGETとかform使っちゃったりしてるし。
「Hellow World!」は簡単なのがいい。
そこで以下のサイトを参考にする。
Zend Framework まとめ
この記事よりわかりやすいのでオススメ。
しかも図入り!みんなどうやって書いてるの・・・
最初にZend Frameworkの構造を確認。
htdocs/は公開エリア、application/は非公開エリアにおいておく。
アプリケーションファイル群が直接アクセスされなくなり、セキュリティ的に良い。
application/
models/
views/
controllers/
htdocs/
index.php
.htaccess
applicationとhtdocsは任意の名前に変更できる。
フロントコントローラ(index.php)のアクションコントローラを指定するところで適宜フォルダ名を変えて。
最終的なフォルダ構造はこんな感じ。
application/
views/
scripts/
message/
hello.phtml
controllers/
MessageController.php
htdocs/
index.php
.htaccess
つまり、index.php(フロントコントローラ)とMessageController.php(コントローラ)とhello.phtml(ビュー)を作ればいい。
このHello WorldがMVCも学べる!Mないけど。
htdocs/index.php:フロントコントローラ
<?php
require_once 'Zend/Controller/Front.php';
$front = Zend_Controller_Front::getInstance();
$front->setControllerDirectory('../zendapps/controllers'); //アクションコント
ローラのフォルダ名
$front->dispatch();
application/controllers/MessageController.php:アクションコントローラ
<?php
require_once 'Zend/Controller/Action.php';
class MessageController extends Zend_Controller_Action
{
public function helloAction() // アクションメソッド
{
$this->view->message = 'Hello world!'; // ビュースクリプト側変数へ代入
//$this->view->assign('message', 'Hello world');と書くこともできる
}
}
application/views/scripts/message/hello.phtml:ビュースクリプト
<html> <head><title>あいさつ</title></head> <body> <h1>あいさつ</h1> <hr /> <?php echo $this->escape($this->message);?> </body> </html>
localhost/message/helloにアクセスして、「Hello World!」と出ればOK。
多分これが、一番簡単なZend Frameworkでの「Hello World!」。
2.Frameworkの命名規則
最後に、命名規則を整理しておく。
ファイル名:<コントローラ名(最初のみ大文字)>Controller.php
クラス名:<コントローラ名(最初のみ大文字)>Controller
アクションメソッド名:<アクション名(すべて小文字)>Action
絶対ミスるからな!動かなかったらまずここを疑うんだ!
呼び出しURLになおすと以下のとおり。
Hello Worldサンプルを参考にしてみる。
ex)http://localhost/message/hello
コントローラ名が「message」、アクション名が「hello」
ファイル名が「Message」Controller.php
クラス名が「Message」Controller
アクションメソッド名が「hello」Action
ちなみにコントローラ名によって、見に行くビューフォルダが変わる。
今回コントローラ名が「message」なので、ビューフォルダがviews/scripts/messageと
なる。
同様に、アクションメソッド名によってビューの命名規則も変わる。
アクションメソッド名がindexAction()の場合、index.phtmlを見に行く。
helloAction()の場合、hello.phtmlを呼び出す。

コメント