- Q. Ethna は何故 Ethna_ViewClass っていう層を設けているの? Cakeとかのフレームワークにはこんなのないよ!
- Q.テンプレートエンジンはSmartyしか使えないの?
- Q.?action_login=trueでアクションを選ぶのが嫌
- Q.デバッグはどうするの?
- Q.複数のフォーム値をまたぐチェックはどうやってやるの?
- Q.locationさせるメソッドはないの?
- Q. DocumentRoot配下にEthnaとEthnaアプリケーションを置きたいけど・・・
- Q. ビュークラスは省略できるの?
- Q. アクションクラスは省略できるの?
- Q. アクションフォームクラスは省略できるの?
- Comment
Ethna は View(テンプレート)に書かれるコンテキストに依存した(if分岐等の)処理や、定型的(JSON, リダイレクト、定型ヘッダ等) な出力処理を View に書くのが流儀です。
現状は、デフォルトの状態ではSmartyしか使えません。 Ethna_Rendererを継承したクラスを作成すればSmarty以外でも可能です。
PHPを使った例 http://eringi.com/weblog/archives/2007/02/ethna_renderer.html
アクションを呼び出す方法は自由にカスタマイズできます。
ethnaが作ったプロジェクトの中のetcディレクトリに設定項目ファイルがあります。(ProjectName-ini.phpみたいな)
デフォルトであれば、$configという配列を指定することになってるので、
$config = array(
// *****
'debug' => true,
'log_facility' => 'file',
'log_level' => 'debug',
// *****
);
としてやれば、logディレクトリに発行したSQLや実行したActionなどの詳細なログが溜まります。 ログレベルは
- debug
- info
- notice
- warning
- err
- crit
- alert
- emerg
があります。
ログ関連の情報については下記が参考になります。
例:ラジオボタンAをチェックすると、テキストボックスBの入力が必須になる場合など
74 :72:2005/12/17(土) 02:51:25 ID:???
たとえば、「Aのフォームでhogeを選択した場合にBが必須になる」くらいだったら
簡単だよね。
validateメソッドでチェックする前に、ActionFormの定義値を変えてやればいい。
HOGE_ActionClass::prepareの中で
if ($this->af->get('a') == 'hoge') {
$this->af->form['b']['required'] = true;
}
if ($this->validate() > 0) {
return 'post';
}
とかかな。これがEthnaの流儀かどうかはしらんが、ActionFormを使うならこうするかな。
validate前に動的にフォーム定義の内容を変更する技がある。*1
今のところ、locationをさせるメソッドはありません。
Symfony HttpFoundation のRedirectResponseを使えるようにする予定です。
一部の(lolipopとか)サーバではDocumentRoot配下にしかファイルを置けません。その場合、project-IDが分かってしまうと、logやテンプレートソースが見えてしまいます。 .htaccessが使える場合は、
deny from all
と書いてEthnaとEthnaアプリケーションの一番上においておくと良いと思います。
できます。 ビュークラスの処理内容が空の場合は、ファイルそのものを作らないことができます。
ビュークラスファイルを作らなかった場合は、{App}_ViewClassが代わりに呼ばれます。
FooアクションクラスなしでFooビュー(orテンプレート)を作ることはできます。 その場合は、他のアクションからFooビューを呼び出せばOKです。
できます。
フォーム値を何も受け取らない画面では、フォームクラス作成しなくてもOKです。(その場合は{App}_ActionFormが代わりに呼ばれます)
- Locationとか、Viewからのアクションの指定はEthna_Utilやsmarty_functionでできるといいですね。 -- halt ? 2005-12-20 (火) 14:43:23
- http://comimi.net/ethna/Aero_Util.phps こんな感じでどーでしょ。本体につっこむなら、もっとイケテルな方法ありそうですが。 -- 個々一番 ? 2005-12-20 (火) 21:26:17
- さくら(SAKURA)のレンタルサーバも DocumentRoot 配下でないとファイルを置けません。シンボリックリンクは使用できず 500 エラーになります。これに気づかず時間を無駄にしました。 -- p2 ? 2007-04-12 (木) 00:05:54
- db.md のページがクラックされたのか書き換わってます。本ページ管理者さんへメールなどしようと思いましたが連絡先が見当たらない為、このComment欄にて失礼します。後でこのコメントを削除していただければと思います。 -- ume ? 2007-11-14 (水) 15:25:58
*1ふじもとさん自身も [Ethna-users:00012] で似たような事をおっしゃってますね。*2
*2というか、そっちが先:-)