SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Zend Framework入門

RADツールによるPHPアプリケーション速効開発
- Zend_ToolとZend_Application -

Zend Frameworkによる実践的なPHPアプリケーション開発 23


  • X ポスト
  • このエントリーをはてなブックマークに追加

 本連載では、PHP上で動作するアプリケーションフレームワークであるZend Frameworkについて紹介しています。今回から数回に分けて、Zend Frameworkの1.8から導入されたRADのツールについて説明していきます。

  • X ポスト
  • このエントリーをはてなブックマークに追加

はじめに

 本連載では、PHP上で動作するアプリケーションフレームワークであるZend Frameworkについて紹介しています。今回から数回に分けて、Zend Frameworkの1.8から導入されたRADのツールについて説明していきます。

 RADは「Rapid Application Development」の略で、プロトタイプを作成していきながら必要な機能を加えていくソフトウェア開発手法を指します。多くの場合には開発環境を利用し、コードなどを自動生成することで開発を迅速に行えるようにします。

 今回から紹介するRADツールは、このうちのコードの自動生成などをコマンドラインから行うためのツールです。例えば、本連載の記事についてきたサンプルですが、毎回似たようなディレクトリ構造やファイルがありました。これまでは、(建前としては)いちいちそれらを作り直していたわけですが、今回から紹介するZend FramworkのRADのツールを利用すれば、そのような共通する部分は自動的に生成できるようになります。

 このZend FramworkのRADツールは設定やリソースの管理を行うZend_Applicationと、コマンドラインツールの機能を提供するZend_Toolの2つのモジュールによって実現しています。今回は、これらRADツールを使うための設定と、簡単な使い方について見ていきたいと思います。

対象読者

 PHPの基本構文は一通り理解しているが、フレームワークを利用したことはないという方を対象としています。

必要な環境

 Zend FrameworkはPHP 5.2.4以降とWebサーバがインストールされている環境で利用可能です。本稿ではWebサーバとしてApache 2.2を、OSにWindows XPを採用し、アプリケーションを作成していきます。

 以下に、今回アプリケーション作成/動作確認に用いた環境を示します(インストールにあたっては最新安定版の使用を推奨します)。各項目の詳細なインストール手順は、「サーバサイド技術の学び舎 - WINGS」より「サーバサイド環境構築設定手順」を参照ください。

  • Windows XP SP2
  • PHP 5.2.9-2
  • Apache 2.2.12b

 LinuxやFreeBSDなどUNIX系OSをお使いの方もコマンドはほぼ一緒ですので、パスなどは適宜読み替えてください。

RADツールを使うための準備

 今回紹介するRADツールでは、コマンドラインからのコマンドで、自動的に最低限必要なファイルを配置してくれます。今まではディレクトリから.htaccessのようなファイルもいちいち作成していましたが、この辺も自動的に用意してくれます。

 ただし、RADツールが作成するファイルのディレクトリ構造は、本連載の今までの記事でのディレクトリ構造とは異なるので、設定ファイルの書き換えが必要となります。この辺の違いを、実際にツールを使いながら見ていきましょう。

 では、早速コマンドプロンプトを立ち上げて、RADツールを実行してみましょう。なお、Zend Frameworkは「C:\ZendFramework-1.8.4」に展開されているとします。

Zend Frameworkのバージョン

この記事ではZend Frameworkのバージョン1.8.4を利用する前提で執筆しています。執筆時点でZend Frameworkのバージョン1.9系も1.9.1までリリースされているのですが、1.9.0、1.9.1ともにWindows上では正常に動作しません。

この問題が解決されるまではZend Frameworkはバージョン1.9系ではなく、バージョン1.8系を使うのが良いでしょう。

[リスト1]RADツールで必要なファイルの配置
C:\>ZendFramework-1.8.4\bin\zf.bat create project codezine
Creating project at C:/codezine

 コマンドラインのツールはzf.batという名前で、ここでは「create project codezine」という引数を与えて呼び出しています。これは「codezineという名前のプロジェクトを作成しなさい」という意味で、実行すると「C:\codezine」というディレクトリに必要なファイルが一通りできています。

 ここで作成された主要なファイルの配置はリスト2のようになっています。

[リスト2]主要なファイルとフォルダの配置
C:.
└codezine
   │
   ├─application
   │  │  Bootstrap.php                リソースを作成するスクリプト
   │  │
   │  ├─configs
   │  │      application.ini          アプリケーションの設定
   │  │
   │  ├─controllers
   │  │      IndexController.php      indexのアクションコントローラ
   │  │      ErrorController.php      エラー処理のアクションコントローラ
   │  │
   │  ├─models
   │  └─views
   │      ├─helpers
   │      └─scripts
   │          ├─error
   │          │      error.phtml      エラー処理のためのビュースクリプト
   │          │
   │          └─index		
   │                  index.phtml      indexアクションindexサービスのビュースクリプト
   │
   ├─library
   ├─public
   │      .htaccess                    Apacheのための設定
   │      index.php                    フロントコントローラ
   │
   └─tests

 このように、前回までの「C:\codezine\htdocs」の代わりに「C:\codezine\public」というディレクトリが、「C:\codezine\zendapps」の代わりに「C:\codezine\application」というディレクトリができています。

 そのため、まずApacheの設定ファイルを書き換える必要があります。Apacheの設定ファイル(筆者の環境では「C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf」)の179行目にある、DocumentRootの設定を書き換える必要があります。現在は「DocumentRoot "C:/codezine/htdocs"」となっているところを「DocumentRoot "C:/codezine/public"」に変更してください。

 これでApacheを再起動すると、http://localhostに今作成したページが表示されるはずです(図1)。

図1 標準設定のページ
図1 標準設定のページ

エラーページの表示

 リスト2にあるディレクトリ構造を眺めると、errorというディレクトリがビュースクリプトを置く場所に配置されています。もう気が付いた方もいるかもしれませんが、RADツールを利用してファイルを配置した場合、エラー処理のためのファイルも自動的に作成されます(ちなみに「C:\codezine\application\controllers\ErrorController.php」というファイルも作成されています)。

 このエラー処理はスクリプトにエラーがあった場合や、存在しないコントローラ・サービスにアクセスが来た場合に呼び出されるもので、Webアプリケーションを開発する際には力強い味方になります。では、早速存在しないコントローラ「dummy」を呼び出してみて、どんなエラーが表示されるか眺めてみましょう。ブラウザで「http://localhost/dummy」にアクセスしてください。

 筆者の環境では図2のような画面が表示されました(この時点で後にある、図3のような画面が表示されていれば問題はありません)。

図2 エラー表示に失敗している例
図2 エラー表示に失敗している例

 これはなぜでしょうか?実は、RADツールが自動で生成するエラー処理関係のスクリプト(error.phtml)では、PHPコードを埋め込んである部分に省略タグを利用しています。つまり、「<?php ...?>」と書く代わりに「<? ... ?>」と書いてあります。

 このような記述法を許すにはPHPの設定ファイルに変更を加え、省略タグを利用できるようにする必要があります。筆者の環境ではPHPの設定ファイルは「C:\Program Files\PHP\php.ini」で、これの133行目にあるshort_open_tagの設定を書き換える必要がありました。「short_open_tag = Off」となっている箇所を「short_open_tag = On」と書き換えてください。その上でまたApacheを再起動すると、次のような画面が表示されるはずです。

図3 エラー表示に成功している例
図3 エラー表示に成功している例

 これで、RADツールを利用したWebアプリケーションの基本的な設定ができました。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
アプリケーションの開発

修正履歴

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Zend Framework入門連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 風田 伸之(カゼタ ノブユキ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/4253 2009/10/18 21:30

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング