Zend Framework1でHello World

前回の準備編で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になおすと以下のとおり。

コントローラ名>/<アクション名>/<パラメータ1>/<パラメータ1の値>/<パラメータ2>/<パラメータ2の値>

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を呼び出す。

参考

Zend Framework まとめ

Zend Framework入門(2):Hello World!アプリケーションの作成

コメント

タイトルとURLをコピーしました