スライド1: エンサイツ株式会社 MugeSo
スライド2: ・ Mojaviからforkしたフレームワーク・ Mojave砂漠に自生する植物Agaveから命名・ 現在はドイツBitextender社が中心となり開発・ リードコミッタはDavid Zülke氏agave(和名:リュウゼツラン)出典:wikipedia
スライド3: Agaviってまだあったの?Agaviってまだあったの?
スライド4: ・ あくまで骨組みに徹する・ データベース→propel,Doctrine,PDO・ テンプレートエンジン→PHP Smarty PHPTal・ 高い拡張性・ Agaviの基本クラスをXML設定ファイル(factories.xml)によって置換可能・ HTTP以外にも対応・ SOAP,RPCなどWebAPIはもちろんコンソールも
スライド5: Agavi チュートリアルより
スライド6: 1. Webアプリを開発・ Modelを実装・ Actionを実装・ ViewにexecuteHtmlとテンプレートを実装2. Ajax機能を付加・ ViewにexecuteJson/executeXmlを実装・ 呼び出し元のテンプレートを実装
スライド7: ・ Agaviでは・・・バリデーションを通過していないリクエストデータにはアクセスできません!$_GET$_POST$_SERVER['HTTP_*’]ブートストラップ時 Action実行前copy RequestDataHolder clone RequestDataHolderバリデート
スライド8: ・ Routing・ route.xmlで設定・ リクエストURLによる振り分け・ リクエストメソッドによる振り分け・ 出力形式の設定も可能・ Caching・ Actionの出力(検索結果など),Veiwの出力等・ i18n・ gettext、独自のxmlによるメッセージ翻訳・ 日付の出力形式のローカライズ・ 通貨よる出力形式の切り替え・ ロケールに基づくテンプレート切り替え
スライド9: / app/ config/ cache/ lib/ templates/ models/ log/ modules/ pub/ <module>/ index.php/ <module>/ actions/ views/ templates/ cache/ validate/ config
スライド10: 1. ブートストラップ2. ルーティング処理u 実行アクションの決定u URLパスからのパラメータ抜き出し(HTTP)3. グローバルフィルタ実行4. 実行コンテナ(execution container)の実行u アクションフィルタ実行u バリデーション処理u アクション実行u ビュー実行u レンダリング処理u アクションフィルタ実行u グローバルフィルタ実行
スライド11: ん?レンダリング処理?
スライド12: ViewActionデータテンプレート テンプレートエンジン
スライド13: layer1layer2<?php echo $inner;?><?php echo $inner;?>layer3
スライド14:
スライド15: View$this>setSlot(‘foo’, $executionContainer);execution cotainer slot<?php echo $slots[‘foo’];?>
スライド16: