前回の準備編で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を呼び出す。
コメント