PRADOは、PHPで開発された、
オブジェクト指向、イベント駆動型、コンポーネントベースの
Webアプリケーションフレームワークです。その名称は「PHP Rapid Application Development Object-oriented」の頭文字から取られており、PHPによる迅速な
オブジェクト指向アプリケーション開発を目的としています。
歴史
PRADOプロジェクトは、
Apache Tapestryに触発され、Qiang (Charlie) Xueによって開始されました。このフレームワークは、
Delphiや
ASP.NETからも影響を受けています。2004年6月に最初の公式リリースが行われましたが、当初はPHP 4で書かれていたため、オブジェクトモデルに問題が発生しました。その後、PHP 5のオブジェクトモデルに合わせて書き直され、Zend PHP 5コンテストで特賞を受賞しました。2004年8月には、
SourceForge.netでオープンソースプロジェクトとして公開され、その後プロジェクトサイト「xisc.com」も公開されました。2005年中頃にはバージョン2.0にアップデートされ、Wei Zhuoによってi18N/L10Nサポートが実装されました。2006年4月には、バージョン2.0で発見された問題点を解決し、Microsoft
ASP.NET 2.0で利用可能な機能を実装したバージョン3.0がリリースされました。
主な機能
PRADOには、以下のような主要な機能があります。
再利用性: 開発したコードを再利用することで、開発効率を向上させることができます。
イベント駆動型プログラミング: ユーザーのアクションをサーバーイベントとして取得できるため、開発者はユーザー操作とアプリケーションの相互作用に集中できます。
チーム統合: 画面出力部分とロジック部分が別々に保存されるため、デザイナーと開発者の連携がスムーズに行えます。
便利なウェブコントロール: DataGridコントロールなど、様々なウェブコントロールが用意されており、ページング、
ソート、編集、行の削除が可能なテーブルを簡単に作成できます。
データベース接続: バージョン3.1から
データベース接続機能がサポートされ、シンプルなPDOベース、アクティブレコード、SqlMapの3つの接続方式から選択できます。
AJAXサポート: バージョン3.1からアクティブコントロールが実装され、
JavaScriptコードを書かずにAJAX機能を利用できます。
i18N/L10Nサポート: 国際化とローカライズに対応しており、メッセージ翻訳、日付と時刻の書式設定、番号の書式設定、インターフェースなどをサポートします。
XHTML対応: 生成されるWebページはXHTMLに対応しています。
既存技術の利用:
プレゼンテーション層に特化したフレームワークであるため、既存のクラス
ライブラリやツール(ADOdbやCreoleなど)をそのまま利用できます。
その他の機能: 例外処理とメッセージロギング、キャッシング、カスタム例外処理、ローカライズ、拡張可能な認証、
クロスサイトスクリプティングなどのセキュリティ対策、クッキー保護などが含まれます。
特徴
PRADOの最大の特徴は、コンポーネントベースとイベント駆動型である点です。多くのPHPフレームワークがMVCパターンを推奨するのに対し、PRADOは画面表示部分とロジック部分を分離することに重点を置いています。また、MVCフレームワークではなく、コードジェネレータは提供されていません。
PRADOは、修正
BSDライセンスの下でリリースされており、オープンソースと
プロプライエタリソフトウェアの両方のWebアプリケーション開発で無料で利用できます。この
ライセンスでは、
著作権表示、
ライセンス条文、無保証の旨をドキュメントに記載すれば、
ソースコードを他のプログラムに組み込んで、その後の
ソースコードを非公開にすることができます。
インストール
PRADOの最小構成は、サーバーがPHP5をサポートしていることです。PRADOは、Windowsと
Linuxの両環境のApacheサーバーでテストされています。
PRADOの開発者であるQiangは、PRADOでの経験を基に、高速で高負荷なシナリオでの不具合を克服するために、2008年に新しいPHPフレームワーク
Yiiを開発しました。
Yiiは、PRADOのコンセプトを再定義したものです。
関連項目
Webアプリケーションフレームワーク
Yii
外部リンク
PRADO公式サイト
PRADO Quickstart Tutorial
PRADO Documentation
PRADO Versions list
*
PRADO Source code on GitHub