Más contenido relacionado フレームワーク Ethna2. 目次 Ethnaとは Ethnaの動作イメージ Ethnaのディレクトリ構成 Ethnaの簡単なプログラム Actionの記述例 ActionFormの記述例 ActionClassの記述例 AppManagerとAppObjectの記述例 テンプレートの記述例 まとめ Ethnaの参考資料 3. Ethnaとは EthnaとはPHPフレームワークの一つ 読み方は「えすな」 Ethnaは、PHPを利用したウェブアプリケーションフレームワークで似たようなコードを書かなくてよいことを目標に作成しています。(本文まま) 最新の安定版は 2.5.0 (PHP 5.3非対応) 開発版は 2.6.0 beta2 (PHP 5.3対応) 利用例 GREE ポケラボ KLab など 5. Ethnaのディレクトリ構成 app (アプリケーションのスクリプト) action (アクションスクリプト) action_cli(CLI用アクションスクリプト) action_xmlrpc(XMLRPC用アクションスクリプト) plugin(フィルタスクリプト) test (テストスクリプト) view (ビュースクリプト) bin (コマンドラインスクリプト) etc (設定ファイル等) lib (アプリケーションのライブラリ) locale ja_jp log (ログファイル) schema (DBスキーマ等) skel(アプリケーション用スケルトンファイル) template ja_jp(テンプレートファイル) tmp(一時ファイル) www (ウェブ公開用ファイル) css(CSSファイル) js(JavaScriptファイル) 6. Actionの記述例 class Sample_Form_Login extends Ethna_ActionForm { // フォームの定義 var $form = array( ); } class Sample_Action_Login extends Ethna_ActionClass { // 前処理 public function prepare() { } // メイン処理 public function perform() { } } 7. ActionFormの記述例 var $form = array( 'id' => array( 'type' => VAR_TYPE_STRING, 'form_type' => FORM_TYPE_TEXT, 'name' => 'ID', 'required' => true, ), 'passwd' => array( 'type' => VAR_TYPE_STRING, 'form_type' => FORM_TYPE_PASSWORD, 'name' => 'ログインパスワード', 'required' => true, ), ); 8. ActionClassの記述例 public function perform() { $result = false; if ($this->af->validate() == 0) { $id = $this->af->get('id'); $passwd = $this->af->get('passwd'); $userMng =& $this->backend->getManager("User"); $result = $userMng->auth($id, $passwd); } if ($result === false) { $this->ae->add("loginerror", "ログインエラー"); return "login"; } else { return "mypage"; } } 9. AppManagerとAppObjectの記述例 <?php class Sample_UserInf extends Ethna_AppObject { } class Sample_UserManager extends Ethna_AppManager { public function auth($id, $passwd) { $userInf = $this->backend->getObject('UserInf', "id", $id); $pass = $userInf->get("passwd"); if ($passwd == $pass && $pass != "") { return true; } return false; } } ?> 10. テンプレートの記述例 {foreach from=$errors item=error} <span style="color: #FF0000;">{$error}</span><br /> {/foreach} {form ethna_action="login" action="/login.php"} ID {form_input name="id" size="20"} パスワード {form_input name="passwd" size="8"} {form_submit value="ログイン"} {/form} 11. まとめ メリット 国産(GREE)である. ActionFormを扱える. 自動でエスケープしてくれる. デフォルトでSmartyが使える. PEARと連携している. デメリット リリースペースが遅い. デフォルトでSmarty利用. ドキュメントが少ない. 12. Ethnaの参考資料 本家 http://ethna.jp/ ダウンロード http://ethna.jp/ethna-download.html チュートリアル http://ethna.jp/ethna-document-tutorial.html APIドキュメント http://ethna.jp/doc/