PRADO (フレームワーク)

PRADO は、オープンソース で作成されたオブジェクト指向のイベント駆動型かつコンポーネントベースなPHPで書かれたWebアプリケーションフレームワークである。PRADOの名称は「PHP Rapid Application Development Object-oriented （PHPによる迅速なオブジェクト指向的アプリケーション開発）」の頭文字より名付けられた。

歴史 
PRADOプロジェクトは、Apacheタペストリー(アパッチ・タペストリー)に触発されたQiang(Charlie) Xue(中国名:薛強)によって始められた。このフレームワークは、Borland DelphiやマイクロソフトのASP.NETからも着想を得ている。PRADOの最初の公式リリースは2004年6月であるが、PHP4で書かれたオブジェクトモデルが様々な問題を発生させていた為、新しいPHP5のオブジェクトモデルのフレームワークに書き直されて、Zend PHP5コンテストに出場して特賞を受賞した。

2004年8月にオープンソースプロジェクトとして SourceForgeにて提供し始め、続いてプロジェクトサイト「xisc.com」を公開した。2005年中頃にバージョン2.0へとバージョンアップした。このバージョンでは、Wei Zhuoによりi18N/L10Nサポートの実装がされた。

2006年4月に、バージョン2.0で見つかった問題点を解決し、Microsoft ASP.NET2.0で利用可能ないくつかの機能を実装したバージョン3.0をリリースした。

主な機能 
再利用性 - 開発したコードを再利用する事ができる。

イベント駆動型プログラミング - サーバーイベントとしてユーザーのアクションを取得する事ができるので、 開発者はユーザの操作とアプリケーションとの相互作用に集中できる。

チーム統合 - 画面出力部分とロジック部分が別々に保存されるので、デザイナーと開発者の連携が容易となる。

便利なウェブコントロール - ウェブコントロールがいくつか用意されている。例えば DataGrid コントロールで、ページングやソート、編集、行の削除が可能なテーブルを表示するページをすぐに作成することができる。

バージョン3.1から、PRADOはデータベース接続機能をサポートしている。開発者はビジネスロジックの複雑さに応じて、以下の3つのデータベース接続の中から選択する事ができる。
(1) シンプルなPDOベースのデータベース接続
(2) 一般的なアクティブレコードによるデータベース接続
(3) 複雑なビジネスオブジェクトとスキーマとのマッピングをサポートした SqlMapによるデータベース接続

AJAXサポート - バージョン3.1からアクティブコントロールが実装された。開発者はJavaScriptのコードを一行も書くことなく、AJAXを利用する事が可能。

i18N8N/L10Nサポート - 国際化ならびにローカライズに対応している。(メッセージ翻訳・日付と時刻の書式・番号の書式設定およびインターフェイス等)

XHTML対応 - 生成されたウェブページは XHTML に対応している。
既存技術の利用が可能 - PRADOはプレゼンテーション層にターゲットを当てたフレームワークである。ほとんどの既存クラスライブラリやツールをそのまま利用する事ができる。(例:ADOdbやCreole)

その他の機能 - 主なものとして下記の機能がある。
(1) 例外処理とメッセージのロギング機能
(2) キャッシング機能
(3) 例外処理のカスタム、ローカライズ、拡張可能な認証機能
(4) クロスサイトスクリプティング等のセキュリティに対応、クッキー保護等

特徴 
コンポーネントベースとイベント駆動型である点（ほとんどのPHPフレームワークでは、画面表示部分とロジック部分を分離することに着目し、そのためにMVCデザインパターンで開発することを推奨）。

MVCフレームワークではない。

コードジェネレータは用意されていない。

ライセンス 
PRADOは、二次的著作物のソースコードを公開しないでオープンソースとプロプライエタリソフトウェアの両方のウェブアプリケーションの開発においてPRADOの無料利用可能とする修正BSDライセンスの下でリリースされている。
つまり、著作権表示・ライセンス条文・無保証の旨の三点をドキュメント等に記載さえしておけば、BSDライセンスのソースコードを他のプログラムに組み込み、しかも組み込み後のソースコードを非公開にすることも可能である。(WikipediaのBSDライセンスの記事より引用して説明。)

インストール 
PRADOの最小構成は、サーバがPHP5をサポートしていること。
PRADO はWindowsとLinux両環境のApacheサーバーでテストされている。

Yiiとの関係性 
PHPで書かれたWebアプリケーションフレームワークの1つであるYiiは、PRADOの開発者であるQiangが、PRADOでの経験を基に、PRADOのコンセプトの再定義し、高速であり高負荷なシナリオ実行時において発生する不具合を克服する新たなPHPフレームワークとして、2008年に開発した。

関連項目 
Webアプリケーションフレームワーク
Yii

脚注

外部リンク 
 PRADO公式サイト
 PRADO Quickstart Tutorial
 PRADO Documentation
 PRADO Versions list
 PRADO Source code on GitHub

オープンソースソフトウェア
ウェブアプリケーションフレームワーク
PHP