Comments
Description
Transcript
S2Pradoの紹介 S2Pradoの紹介
Seasar Conference 2007 Autumn S2Pradoの紹介 S2Prado の紹介 S2Container.PHP5と連携した S2Container PHP5と連携した PRADOアプリケーションの構築 植山 能成 Seasar Conference 2007 Autumn © The Seasar Foundation and the others 2007. all rights reserved. ⾃⼰紹介 • • • • • 丙午・クリスマスイヴうまれの40才 福岡県福岡市在住 株式会社アイティー勤務 主業務:通信系システム開発 (SIP,P2P) (SIP P2P) 業務でのPHP開発経験 約半年 Seasar Conference 2007 Autumn © The Seasar Foundation and the others 2007. all rights reserved. ⽬次 • • • • • PRADO Frameworkとは デモその1 S2Prado.PHP5とは デモその2 PRADOプロジェクト Seasar Conference 2007 Autumn © The Seasar Foundation and the others 2007. all rights reserved. PRADO Frameworkとは Frameworkとは • • • • Zendコンテストグランプリ作品 Tapestry,ASP.NET,Delphiから影響 PHP5専⽤のフレームワーク 現在のバ ジョンは3 1 1 現在のバージョンは3.1.1 Seasar Conference 2007 Autumn © The Seasar Foundation and the others 2007. all rights reserved. PRADO Frameworkの特徴 Frameworkの特徴 • • • • • コンポ ネント指向 コンポーネント指向 イベントドリブンなプログラミングスタイル プレゼンテーションと処理の分離 豊富なWebコンポ ネント 豊富なWebコンポーネント DBアクセスコンポーネントを標準提供 Seasar Conference 2007 Autumn © The Seasar Foundation and the others 2007. all rights reserved. コンポーネント指向 • さまざまな機能をコンポ さまざまな機能をコンポーネントとして提供 ネントとして提供 • コンポーネントの組み合わせでアプリ構築 – テンプレートファイルで画⾯構築 – 設定ファイルでアプリケーション機能拡張 設定ファイルでアプリケ ション機能拡張 • 独⾃のコンポーネントの作成が可能 拡張性 再利⽤性が⾼ 拡張性・再利⽤性が⾼い Seasar Conference 2007 Autumn © The Seasar Foundation and the others 2007. all rights reserved. プレゼンテーションと処理の分離 • Page P = Template T l t + Class Cl XMLによる 画⾯構成 記述 記 Seasar Conference 2007 Autumn PHPによる 処理ロジック 記述 © The Seasar Foundation and the others 2007. all rights reserved. 豊富なWeb 豊富な Webコントロール群 コントロール群 • 豊富なWebコントロ 豊富なWebコントロールにて画⾯を構成 ルにて画⾯を構成 – 標準コントロール – Validationコントロール ト – リストコントロール – データコントロール – Activeコントロール – 独⾃コントロール Seasar Conference 2007 Autumn AJAXサポ ト AJAXサポート © The Seasar Foundation and the others 2007. all rights reserved. イベントドリブン • ユ ユーザの操作をサーバーイベントとして取得 ザの操作をサ バ イベントとして取得 • イベントハンドラーとして処理を記述 Borland Delphi Mi Microsoft f Visual Vi lB Basic i などと似た作り Seasar Conference 2007 Autumn © The Seasar Foundation and the others 2007. all rights reserved. DBアクセスコンポーネント DB アクセスコンポーネント • ActiveRecord – Ruby での O/R マッピングとして有名 – データベースのテーブルやビューの列をラップ デ ブ ビ プ • SQLMap – iBATIS Data Mapperを参考に作成されている – SQLクエリーを活⽤ SQLクエリ を活⽤ 状況により使い分け Seasar Conference 2007 Autumn © The Seasar Foundation and the others 2007. all rights reserved. PRADO公式サイトへ! PRADO 公式サイトへ! • 興味を持たれた⽅は・・・ • 公式サイトへ • http://pradosoft.com/ htt // d ft / Seasar Conference 2007 Autumn © The Seasar Foundation and the others 2007. all rights reserved. 公式サイト主コンテンツ • チュ チュートリアル トリアル • ユーザーフォーラム • Wiki チュートリアルの内容と共に チ トリアルの内容と共に PRADOの機能を紹介します。 PRADOの機能を紹介します Seasar Conference 2007 Autumn © The Seasar Foundation and the others 2007. all rights reserved. インストール/Hello インストール/ Hello World • PRADOのインスト PRADOのインストール ル – インストーラをダウンロード – ディレクトリに展開 デ • Hello Worldアプリケ−ション Worldアプリケ ション Seasar Conference 2007 Autumn © The Seasar Foundation and the others 2007. all rights reserved. QuickStartチュートリアル QuickStart チュートリアル • 通貨コンバ 通貨コンバーター タ – Webコンポーネントによる画⾯作成 – 標準、Validation、Activeの各種コンポーネント ポ • Ajaxチャット – ActiveRecordによるデータアクセス – TScaffoldViewによるCRUD画⾯作成 TS ff ldVi によるCRUD画⾯作成 <com:TScaffoldView RecordClass="UserRecord" /> Seasar Conference 2007 Autumn © The Seasar Foundation and the others 2007. all rights reserved. Blogチュートリアル Blog チュートリアル • 5⽇間で標準的なWebアプリを構築 – 1⽇⽬ – 2⽇⽬ – 3⽇⽬ – 4⽇⽬ – 5⽇⽬ Seasar Conference 2007 Autumn 導⼊、Webコントロール、レイアウト DBアクセス A ti R DBアクセス、ActiveRecord d 認証/承認 Webコントロール、 ActiveRecord テーマ/スキンによる画⾯デザイン エラ 処理/ロギング エラー処理/ロギング パフォーマンスチューニング © The Seasar Foundation and the others 2007. all rights reserved. その他機能 • JSON、Feed、SOAP JSON Feed SOAP • セキュリティ – hidden項⽬の暗号化 – クロスサイトスクリプティング対応 • 単体テスト・機能テスト実⾏環境の標準提供 – SimpleTestによる単体テスト よ 単体 ト – Seleniumによる機能テスト Seasar Conference 2007 Autumn © The Seasar Foundation and the others 2007. all rights reserved. S2Prado.PHP5とは S2Prado.PHP5 とは S2Container.PHP5と連携した PRADOアプリケーションの構築を⽀援 アプリケ シ ンの構築を⽀援 • S2Prado Component – S2Containerとの連携⽤コンポーネントを提供 • S2Prado Tools – アプリ開発⽀援⽤各種コマンドを提供 Seasar Conference 2007 Autumn © The Seasar Foundation and the others 2007. all rights reserved. PRADOアプリの構成 PRADO アプリの構成 DBアクセス Page View Logic テンプレート ファイル クラス ファイル 肥⼤化? Seasar Conference 2007 Autumn Active Record SQL Map © The Seasar Foundation and the others 2007. all rights reserved. ロジックの分離 DBアクセス Page Template Class Active Record Logic プレゼンテーション ロジック Seasar Conference 2007 Autumn 業務 ロジック SQL Map © The Seasar Foundation and the others 2007. all rights reserved. S2Prado Component Page Template S2Containerによる自動連結 Class DBアクセス Active Record Logic プレゼンテーション ロジック Seasar Conference 2007 Autumn 業務 ロジック SQL Map S2Dao S o © The Seasar Foundation and the others 2007. all rights reserved. S2Prado Component構成 Component構成 • PRADO基本クラスの拡張 – sprado.php – SPradoBase.php • PRADOサービスコンポーネントの拡張 PRADOサ ビスコンポ ネントの拡張 – SPageService.php 他 • S2Container連携⽤インターフェース S2C t i 連携⽤インタ フ ス – IDIRequiredComponent.php q p p p Seasar Conference 2007 Autumn © The Seasar Foundation and the others 2007. all rights reserved. S2Prado アプリケーション構成 • • • • • • • • Seasar Conference 2007 Autumn index.phpファイル index phpファイル application.xmlファイル 業務ロジ ク/DAOクラス 業務ロジック/DAOクラス レイアウト⽤クラス ActiveRecordクラス 各種サ ビスコンポ ネント 各種サービスコンポーネント テスト実⾏環境 テ マ テーマ © The Seasar Foundation and the others 2007. all rights reserved. S2Prado⽤ S2Prado ⽤index.php PRADO純正 require_once('prado/framework/prado.php'); $application=new TApplication(); $application->run(); S2Prado使⽤ define('S2CONTAINER_PHP5_AUTO_DI_INTERFACE',true); require_once('s2prado/sprado.php'); $application=new TApplication(); $application->run(); Seasar Conference 2007 Autumn © The Seasar Foundation and the others 2007. all rights reserved. S2Prado アプリケーション設定 <?xml version="1.0" version="1 0" encoding="utf encoding="utf-8"?> 8"?> <application id=”sprado”> <modules> <module id= id="sprado" sprado class= class="SPrado"/> SPrado /> (略) </modules> <services> <service id="page" class="SPageService" /> (略) </services> </application> コンテナ連携機能 拡張⽤モジュール 拡張⽤モジュ ル を登録 コンテナと連携するPageサービスを登録 Seasar Conference 2007 Autumn © The Seasar Foundation and the others 2007. all rights reserved. S2Containerによる依存性解決 S2Container による依存性解決 ・・・・・?page=UserLogin SPageService getComponent(“UserLogin”) S2Container.PHP5 class UserLogin extends TPage implements IDIRequiredComponent { private $service; public function setService(UserLogic $service){ $this->service = $service; } Setter Injection } class l UserLogicImpl U L i I l implements i l U L i { UserLogic private $userDao; Injection (略) } Seasar Conference 2007 Autumn UserDao © The Seasar Foundation and the others 2007. all rights reserved. S2Prado Tools • コマンドラインツ コマンドラインツールとして下記機能提供 ルとして下記機能提供 – – – – – プロジェクト作成 実装中! テスト環境作成 PHPシェル テスト実⾏ コンポーネント・テストクラス雛形作成 php –f sprado-cli.php [コマンド名] [各種オプション] Seasar Conference 2007 Autumn © The Seasar Foundation and the others 2007. all rights reserved. デモ • Hello Worldアプリ構築 – (PRADO公式サイトより) • S2Prado.PHP5を⽤いたアプリ構築 Seasar Conference 2007 Autumn © The Seasar Foundation and the others 2007. all rights reserved. Seasar PRADO プロジェクト • PRADOに関する情報の充実 • S2Prado.PHP5の開発 • その他 http://prado.php5.sandbox.seasar.org/ で活動をはじめます。 で活動をはじめます Seasar Conference 2007 Autumn © The Seasar Foundation and the others 2007. all rights reserved. PRADOに関する情報の充実 PRADO に関する情報の充実 • PRADOドキュメントの翻訳推進 • PRADO公式フォーラムでの議論 • PRADO公式Wikiの活⽤ Seasar Conference 2007 Autumn © The Seasar Foundation and the others 2007. all rights reserved. S2Prado.PHP5の開発 S2Prado.PHP5 の開発 • S2Prado Componentの開発 – 設定ファイル記述量をより少なく – HTMLテンプレート化の模索 プ • S2Prado Toolの開発 – prado-cli.php形式 – S2Base S2B plugin形式 l i 形式 – GUIによる操作を可能に・・? Seasar Conference 2007 Autumn © The Seasar Foundation and the others 2007. all rights reserved. その他 • PRADOを基盤としたプロダクト群の調査 – Prado Portal (Portalシステム) – phundament (CMSシステム) Seasar Conference 2007 Autumn © The Seasar Foundation and the others 2007. all rights reserved. 募集 •活動メンバー 活動メンバ •募集中です。 Seasar Conference 2007 Autumn © The Seasar Foundation and the others 2007. all rights reserved. 最後に •ご清聴 清聴 •ありがとう •ございました ございました Seasar Conference 2007 Autumn © The Seasar Foundation and the others 2007. all rights reserved.