IBM i 用PHP開発ツールを探る
以前に"System iNEWS"誌に掲載した記事では、Zend Coreを使用したPHPの導入について紹介しました。Zend Coreという製品を使用すると、プログラマはオープン・ソースのスクリプト言語を使用してIBM iのデータやオブジェクトと連携し、カスタマイズしたウェブ・アプリケーションを開発することができます。またZend Coreでは、MySQLとPHPを一緒に使用することで、開発者が広範なオープン・ソース・アプリケーションを展開するためのオープン・ソースのコンポーネント・スタックを実装することができます。本稿では、PHPアプリケーションの開発に使用できるツールの概要とPHPアプリケーションへの機能の統合について説明します。
PHPフレームワーク
一般的にフレームワークとは、特定の要件を満たすためにアプリケーションの開発者がカスタマイズできるようにしたアプリケーション・モデルのことを指します。フレームワークは頻繁に起動されるタスクを用意した豊富なライブラリと、それらのライブラリにアクセスするためのシンプルなインタフェースおよび論理構造を提供するものが多いようです。フレームワークを使用すると、開発チームは満たそうとしている特定の要件に集中でき、アプリケーションの構築に必要な低レベルの共通関数の設計や実装に貴重な時間を割かなくて済みます。フレームワークが目指すところは、開発者がコードを一から書き起こすよりも開発プロジェクトをより迅速に進めることができるようにすることです。
フレームワークはオープン・ソースのものや市販のもの含め、PHPのコミュニティーで入手可能なものがいくつかあります。これらのフレームワークは求められる要件、コーディング・スタイルなどの要因によって異なります。よく使用されるPHPフレームワークには以下のものがあります。
- CakePHP
- CodeIgniter
- eZ Components
- PHP on TRAX
- PRADO
- Seagull
- Symfony
- WACT
- Zend
- Zoop
また、フレームワークのおもな機能の違いには以下のようなものがあげられます。
- モデル-ビュー-コントローラ・パラダイムのサポート。このパラダイムはアプリケーションを3つの個別のコンポーネントに分割する方法の一つです。
- 複数データベースのサポート
- 組み込み型テンプレート・エンジン
- オブジェクトのキャッシュ
- バリデーションおよびフィルタリング
- Ajax (Asynchronous JavaScript and XML)のサポート。Ajaxは対話型ウェブ・アプリケーションの開発に使用します。
- アクセス制御リスト(ACL: Access Control List)などといったユーザー認証処理のサポート
- RSSフィード・パーサ、PDFプロセッサ、Googleデータなどのその他のモジュールのサポート
Zend Framework
PHPフレームワークの1つの例にZend Frameworkがあります。Zend Frameworkは無償で提供されるもので、Zend Core for IBM i製品に含まれています。Zend Frameworkはオープン・ソースのフレームワークで、独立した関数を開発したり統合したりするためのコンポーネント・ライブラリやMFCフレームワークのサポートなどを提供しています。Zend Frameworkで提供されている関数の例としては以下のものがあります。
- Zend_Acl:
アクセス制御リストに応じたユーザー認証機構へのアクセスを提供します。 - Zend_Config:
ウェブ・アプリケーションの構成データを処理します。 - Zend_ControllerおよびZend_View:
モデル-ビュー-コントローラ・パラダイムを遵守したウェブ・サイトの開発用のインフラストラクチャを提供します。 - Zend_FilterおよびZend_Validate:
ウェブ・サイトのデータをフィルタリングしたりバリデーションしたりしてウェブ・サイトをより安全なものにするために必要な関数を提供します。 - Zend_Gdata:google.comでホスティングされているサービスへ読み込み/書き出しアクセスを提供するAPI群を提供します。
- Zend_MailおよびZend_Mime:電子メール・メッセージを処理するインタフェースを提供します。
- Zend_PDF:PDFドキュメントを処理するためのAPI群を提供します。
統合開発環境
統合開発環境(IDE: Integrated Development Environment)とはソフトウェア開発ツールまたはツール群のことで、ソフトウェア・コンポーネントの開発、デバッグ、保守のための堅牢な機能を提供するものです。統合開発環境の典型的な機能や特徴には以下が含まれます。
- PHPアプリケーションを単なるファイルの集合ではなく"プロジェクト"として扱う
- ブレーク・ポイントの設定、ウォッチ変数、コードのトレースなどといった"デバッグ機能"
- コード・プロジェクト内で複数バージョンのファイルを管理するための"ソースコード管理機能"
- 開発者が使用しているワークステーションとサーバー間でファイルを転送するための"FTP/SFTP"との統合
- "データベース"構造内を"ナビゲートする"ことで、開発しているコードが対象としているデータベースの構造を表示させる機能
- コーディングの対象となっているウェブ・ページに開発者を直接ナビゲートするための統合"ウェブ・ブラウザ"
- 小さなタスクを実行するコードの小さな塊であるコード・"スニペット"のサポート
PHP開発ツール・プロジェクト
PHP開発ツール(PDT)プロジェクトは、PHPベースのアプリケーションをEclipseプラットフォーム内で開発するための開発フレームワークを提供します。PDTはオープン・ソースの開発環境ツールで、PHP開発に必要となる基本的なコード開発および編集機能を提供するものです。PDTはEclipseプロジェクトを基本としており、完全な開発環境としてあるいは既存のEclipse開発環境へのプラグインとして入手することが可能です。PDTは以下の機能を提供しています。
- PHPソースコードの編集
- コード・テンプレートの提供
- コード・アシストの提供
- PHPソースコードの自動フォーマット
- PHP要素のナビゲーション
- 構文の強調表示
- ファイルの検索
- ファイルやプロジェクト・アウトライン、PHPエクスプローラの検査機能
- PHPスクリプトやウェブ・ページのデバッグ・サポートおよびウェブ・サーバーの管理
PDTの詳細についてはeclipse.org/pdtを参照ください。
Zend Studio
Zend StudioはZend社が提供しているPHPアプリケーション開発用の市販のIDEです。Zend StudioはPDT開発環境に加えていくつかの機能を提供しています。PDTとZend Studioの機能比較一覧を図―1の表にまとめてあります。
Zend Studioの機能は以下のように、開発者の生産性向上を図ることを目的としています。
- コードの再利用性
- 運用環境にあるPHPアプリケーションのリモート・デバッグ
- ベスト・プラクティスの開発
- 繰り返しが可能な一貫性のあるテスト
- 開発の標準
- 根本原因分析
- 運用環境で発生した障害の開発環境での再現
PHPがIBM iプラットフォーム上で初めて利用可能になったとき開発者がZend Studioを使用した主な理由は、Zend StudioがZend Coreランタイム・エンジンを開発したZend社から提供されていることと、IBM iを使用している顧客に無償で提供されたことです。Zend社の開発環境の最新版はZend Studio for Eclipseです。Zend Studio for Eclipseはその前身のZend Studioと同様に、IBM iを使用している顧客に対してzend.comのウェブ・サイトから無償で入手することができます。本稿では以降Zend Studio for Eclipse i5を簡単にZend Studioと記します。
Zend Studioを初めて起動すると、ウェルカム・ページにアクションの一覧とチュートリアルが表示されます(図―2)。
Zend Studioの機能に触れてみるにはまずこのチュートリアルから始めると良いでしょう。Zend Studioを使い始めるにはウェルカム・ページをクローズしてください。するとワークベンチ・ウィンドウ(図―3)が表示されます。
ワークベンチはパースペクティブと呼ばれるいくつかのエリアに分かれています。開発者はこのパースペクティブをリサイズしてそのコンテンツや使用方法を自分のスタイルに合わせることができます。デフォルトではワークベンチ右上のパースペクティブはコード開発パースペクティブとなっており、開発者はここでコードを書きます。コードの強調表示、折りたたみ表示、入力補完などといった機能はこのパースペクティブ内で利用可能です。一番下のパースペクティブはIDEからのメッセージが表示される場所です。このパースペクティブのコンテンツはパースペクティブの一番上にあるタブを選択することで変更できる点に注目してください。パースペクティブのトップ・バーを右クリックして[切り離し]を選択すると、そのパースペクティブを切り離して独立した移動可能なウィンドウにすることもできます。
Zend Studioは、MySQL、Microsoft SQL Server、Oracle、PostgreSQL、IBM DB2 Universal、IBM DB2 for iなど複数のデータベースとの接続を確立することができます。ここでいう接続とは、プログラム的な接続のことではない点に注意してください。つまりここでいう接続によりPHPのコードが上記のデータベース・ソースに接続できるということではありません。そういう意味での接続は適切なPHP APIを介して行います。ここでいう接続とは開発環境内からデータベースの構造をレビューし、データベースに対してクエリーを発行できるという意味です。
データベース接続の管理とアクセスはData Source Explorerビューで行います。このビューは、[ウィンドウ]-[表示]-[ビュー]-[Data Source Explorer]を選択することで表示できます。ビューが表示されたら、[新規のSQL接続作成]アイコンをクリックして新しいSQL接続 (タスクバー上のプラス記号が付いた黄色いディスク・ドライブ)を作成することができます。このアイコンはData Source ExplorerビューだけでなくZend Studioインタフェースの最上部にあるアイコン・バーにもあります。このアイコンをクリックするとダイアログボックスが表示されますので、接続の詳細をここに入力します。
IBM iへの接続には以下のようにフィールドに値を入力します。
- [ドライバの選択]フィールドのドロップダウン・リストからAS/400 Toolbox for Java Defaultを選択します。
- IBM iのネットワーク・アドレス(またはネットワーク名)を反映するようにURL行を変更します。デフォルトでは「jdbc:as400:host;prompt=false」となっていますので、この「host」の部分をネットワーク・アドレスに置き換えます。
- データベースにアクセスするユーザーのユーザー名とパスワードを入力します。
接続を定義したら[接続テスト]ボタンを使用して入力した接続の詳細が正しいことを確認します。上記のダイアログ上でこの他に選択できる項目が2つあります。
- パスワードの保存―パスワード情報を接続の詳細と一緒に保存します。
- 起動時に自動接続―Zend Studioの起動時にデータベース接続を回復します。
接続の定義を完了したら[完了]ボタンをクリックして接続を定義します。接続が定義されるとData Source Explorerビュー内にその定義が表示されます。こうすると、このビューを使用してZend Studio内からデータベースの構造を見ることができます。基本的にはData Source Explorerがデータベースの構造情報をツリー上に表示しています(図―4)。
Zend Studioのもう1つの便利な機能は、IBM iプラットフォーム上で実行中のコードをデバッグする機能です。この機能はIBM iオブジェクトにアクセスしているコードをデバッグできるので大変重要な機能です。IDEは開発者が使用しているPC上で稼働しており、PHPのコードは別のサーバー上で実行されていますから、Zend Core (IBM i上で稼働しているPHPランタイム・エンジン)がPCクライアントからのデバッグ・リクエストを受け入れるように構成しておく必要があります。この構成はZend Coreのウェブ・ベースの管理ツールで行います。このツールにはウェブ・ブラウザ上でPHPアプリケーションを実行しているウェブ・サーバーのZend Coreのページを指定することでアクセスできます。
管理インタフェースにログインした後(管理インタフェースへログインするためのパスワードはZend Core for IBM i Setup Tool (go zendcore/zcmenuコマンドでアクセス)でリセットすることができます)、[構成]、[Zendデバッガ]を選択する必要があります。
デバッグ・リクエストを許可するホスト(あるいは複数のホスト)を定義したら、[保存]ボタンをクリックします(図―5)。この構成変更を有効にするにはApache Serverを再起動する必要がありますので注意してください。Apacheサーバーの再起動はZend Core for IBM i Setup toolで行えます。Zend Coreがインストールされているシステム上でgo zendcore/zcmenuコマンドを発行すれば良いのです。
入手先
Zend Studio製品はIBM iの顧客向けにzend.comからダウンロードできます。Zend StudioはZend Silverサポートの1年保守(ウェブ・ベースのサポート、保守、パッチ、修正)が付いて無償で提供されています。この製品はzend.comのウェブ・サイトで登録を済ませるだけで入手できます。
Zend Studio for Eclipseは従来製品とは異なり、顧客登録を済ませなければなりません。この製品には30日間の試用期間が含まれており、30日が過ぎるとこの顧客登録が必要になります。Zend Studio for Eclipseのコピーを登録するステップは以下の通りです。繰り返しますがこの製品はIBM iの顧客には無償で提供されています。
ライセンス・キーを入手するには、[ヘルプ]を選択し[ライセンスの購入]を選択して、システムのシリアル番号とオプションの電子メール情報を入力してZend Studio for i5/OSのライセンス・リクエストを完了します(図―6)。
必要な情報を入力して[ライセンスの生成]ボタンをクリックするとZendのログイン画面が表示されます。Zend製品を最初にダウンロードするときにzend.comのウェブ・サイトで使用した電子メール・アドレスとパスワードを入力します。登録情報を正しく入力するとライセンス・キーが生成されて表示されます。
この時点でZend Studio製品に対して生成されたライセンス・キーを入力する必要があります。 [ヘルプ]、[登録]を選択し、登録プロセスで提供された情報を[ライセンス更新]ダイアログ(図―7)に入力してください。
有効なライセンス情報を入力すると、ライセンスの詳細が表示されます。ここで[OK]をクリックするとZend Studio製品上のライセンス情報が更新されます。更新されたライセンス情報を有効にするにはZend Studioを再起動する必要があります。
おわりに
PHP環境で使用できるいくつかの開発ツールをご紹介しましたがお楽しみいただけたでしょうか。IBM i資源用のウェブ・ベースのアプリケーションの開発のために提供されているPHPの可能性を上手に活用していただければと思います。