ZendFrameworkで作る『イマドキ』のWebアプリケーション

第5回 Zend Framework 1.8と新しいZend_Tool

この記事を読むのに必要な時間:およそ 7 分

Zend Frameworkのファイルへのアクセス

ライブラリファイルがコピーされていないので,プロジェクト削除直後はまだスケルトンを実行できません。

[framework@localhost www]$ cd test/library/
[framework@localhost library]$ ls
[framework@localhost library]$ ln -s ../../ZendFramework-1.8.0/library/Zend
[framework@localhost library]$ ls
Zend

後はWebサーバがアクセスできるように/www/defaultのシンボリックリンクを更新します。

[framework@localhost www]$ rm default
[framework@localhost www]$ ln -sf test default

これで新しく作成したZend Frameworkアプリケーションのスケルトンにアクセスできるようになります。

エラーページの問題

エラー処理のページも用意されていますが,このページには問題があります。

<?php
<?php echo

のショートカットである

<?
<?=

が利用されているため,php.ini設定によっては正しく表示できません。

図3 ショートタグ問題

図3 ショートタグ問題

アプリケーション起動時に必ず読み込まれるbootstrap.phpでストリームラッパーを使用し,読み込み時に⁠<?⁠⁠,⁠<?=⁠⁠<?php⁠⁠,⁠<?php echo⁠に書き換える仕組みがZend Frameworkによって提供されていますが,この機能はかなりのオーバーヘッドが必要なためあまりお勧めできません。エディタの置換機能を使って書き換えてしまったほうがよいです。

図4 正常なエラーページ

図4 正常なエラーページ

新しいページ(コントローラ,アクション,ビュー)の作成

Controller
zf create controller name index-action-included[=1]
View
zf create view controller-name action-name-or-simple-name
Action
zf create action name controller-name[=index] view-included[=1]

zfコマンドは上記の書式でコントローラ,アクション,ビューの作成が可能です。

  • http://localhost/foo/bar/

としてアクセスできる,barアクションを実行するfooコントローラのページを作成してみましょう。

[framework@localhost default]$ zf create controller  foo
Creating a controller at /www/test/application/controllers/FooController.php
Creating an index action method in controller foo
Creating a view script for the index action method at /www/test/application/views/scripts/foo/index.phtml
Creating a controller test file at /www/test/tests/application/controllers/FooControllerTest.php
Updating project profile '/www/test/.zfproject.xml'

indexコントローラも一緒に作成されたことが分かります。まずはindexコントローラにアクセスして動作を確かめてみましょう。

図5 http://localhost/foo

図5 http://localhost/foo

テキストだけのページですが,コントローラもビューも用意されているのでエラー無くページが表示されます。

今度はbarアクションを追加してみましょう。

[framework@localhost default]$ zf create action bar foo
Creating an action named bar inside controller at /www/test/application/controllers/FooController.php
Updating project profile '/www/test/.zfproject.xml'
Creating a view script for the bar action method at /www/test/application/views/scripts/foo/bar.phtml

図6 http://localhost/foo/bar

図6 http://localhost/foo/bar

必要なアクションがFooController.phpに追加され,ビューのbar.phtmlファイルが作成されたことが分かります。

FooController.phpとbar.phtmlの中身を見てみましょう。

FooController.php

<?php

class FooController extends Zend_Controller_Action
{

    public function init()
    {
        /* Initialize action controller here */
    }

    public function indexAction()
    {
        // action body
    }

    public function barAction()
    {
        // action body
    }


}

bar.phtml

<br /><br /><center>View script for controller <b>foo</b> and script/action name <b>bar</b></center>

この程度なら自分でコピーして作成してもよさそうですが,今後zfコマンドはさまざまな拡張が行われるようです。

著者プロフィール

大垣靖男(おおがきやすお)

University of Denver卒。同校にてコンピュータサイエンスとビジネスを学ぶ。株式会社シーエーシーを経て,エレクトロニック・サービス・イニシアチブ有限会社を設立。
オープンソース製品は比較的古くから利用し,Linuxは0.9xのころから利用している。オープンソースシステム開発への参加はエレクトロニック・サービス・イニシアチブ設立後から。PHPプロジェクトでは,PostgreSQLモジュールのメンテナンスを担当している。

URLhttp://blog.ohgaki.net/

著書