【PHPフレームワーク】Ethna【スケルトン自動作成】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2005/08/03(水) 21:00:39ID:TuHx69hTEthna -PHPウェブアプリケーションフレームワーク-
http://ethna.jp/
SourceForge.jp: Project Info - Ethna
http://sourceforge.jp/projects/ethna/
0402nobodyさん
2006/07/12(水) 12:48:18ID:???0403nobodyさん
2006/07/12(水) 12:59:51ID:???こういう人がどうやってEthna使ってみようと思うのだろうか?
0404nobodyさん
2006/07/16(日) 08:55:24ID:qmXQomWm0405nobodyさん
2006/07/16(日) 11:11:03ID:???AppObject使う利点は、すでにActionFormとの連携ができてるところだけだから、
自前のActionForm extends Ethna_ActionFormを作って、その部分を解決すれば
なんでも使えると思う。
Ethnaはその辺の自前拡張性が楽でいいね。
0407nobodyさん
2006/07/22(土) 17:28:06ID:???$db =& $this->backend->getDB();
のようにDBを呼び出そうとすると
Fatal error: Call to a member function getDB() on a non-object
って怒られちゃうんだけど。
どうやったDBを呼び出せるの?
使い方間違ってる?
0408nobodyさん
2006/07/22(土) 17:33:53ID:GB10SsDy$this->db
でいきなり使える。
0409nobodyさん
2006/07/22(土) 19:56:51ID:???でけたす
0410nobodyさん
2006/07/23(日) 18:04:46ID:???$smarty->is_cached
とか使いたいんだけど、どげんすればよいとですか?
0411nobodyさん
2006/07/23(日) 18:33:26ID:???2.3.0からobsoleteだけど。
0413nobodyさん
2006/07/24(月) 10:52:32ID:???0416nobodyさん
2006/07/26(水) 18:31:39ID:fkuJrgoL0417416
2006/07/26(水) 20:00:48ID:???初歩的なミスが原因でした。。
0418nobodyさん
2006/07/28(金) 10:53:29ID:???0419nobodyさん
2006/07/29(土) 09:16:44ID:???0420nobodyさん
2006/07/31(月) 23:09:52ID:???どのような手続きをとれば良いのでしょうか?
ActionFormを利用してstringsやarrayは渡せるみたいなのですが、
オブジェクトが分かりません。
0421nobodyさん
2006/07/31(月) 23:58:43ID:???0422nobodyさん
2006/07/31(月) 23:59:42ID:???0424nobodyさん
2006/08/01(火) 02:07:13ID:???試してみました。
object(test)#12 (2) { ["name"]=> string(6) "なまえ" ["value"]=> string(6) "あたい" }
という内容のオブジェクト$testを
$this->setAppNE('test',$test);
として
tpl側で
{$app.test->name}
{$app.test->value}
としても何もでてこないのですが、設定の仕方がわるいでしょうか・・
0425nobodyさん
2006/08/01(火) 02:10:39ID:???$this->af->setAppNE('test',$test);が正しいです。
これでもやはり何も表示されません。
0426nobodyさん
2006/08/01(火) 03:11:01ID:???tpl側で
{$app_ne.test->name}
{$app_ne.test->value}
あと自前でエスケープ処理を書くより
Ethna_Util::escapeHtml の方がよくね
0427nobodyさん
2006/08/01(火) 08:04:28ID:???第1回OnlineミーティングのIRCログってどこにありますか?
ttp://ethna.jp/ethna-community-topic-online-meeting_20060720.html
0428nobodyさん
2006/08/01(火) 09:10:48ID:???ありがとうございます。できました・・!
Ethna_Util::escapeHtmlというのが用意されているんですね。
勉強になります。
0429nobodyさん
2006/08/06(日) 13:06:54ID:???0430nobodyさん
2006/08/06(日) 15:45:40ID:???0431nobodyさん
2006/08/11(金) 18:27:52ID:M/sj5kXSこの組み合わせで AppObject使うの危険ですか?
0432nobodyさん
2006/08/12(土) 12:07:59ID:???0433nobodyさん
2006/08/12(土) 12:08:40ID:???0434nobodyさん
2006/08/13(日) 19:49:07ID:???0435nobodyさん
2006/08/13(日) 19:58:22ID:???0436nobodyさん
2006/08/13(日) 21:53:49ID:???それにフレームワーク自体もなくてもかまわいない。
0438nobodyさん
2006/08/14(月) 03:20:45ID:???セックスしなよセックス!セックス!
0439nobodyさん
2006/08/17(木) 13:54:56ID:???0440nobodyさん
2006/08/17(木) 22:57:32ID:???上記の通りやっているんですが、上手くいかないんですが間違ってませんよね。。
試しに送られてきた値に文字列を追加してみたんですが上手くいかないのですが。。
0441nobodyさん
2006/08/17(木) 23:17:22ID:???0444nobodyさん
2006/08/18(金) 03:54:08ID:???0445nobodyさん
2006/08/18(金) 04:51:10ID:???0446nobodyさん
2006/08/18(金) 08:03:49ID:???0448nobodyさん
2006/08/18(金) 10:22:07ID:???0449447
2006/08/18(金) 18:04:51ID:???extends Ethna_ViewClass したクラスの中で
$Serial= $this->session->get('hogeSerial');
として、セッションからユーザシリアルを取得しようとしてるんですけど
Fatal error: Using $this when not in object context in hoge.php line ...
とエラーがでるんです。
環境はwin2k、apache2.x、php5.x
でやってますけど、何が悪いのかわかりません。
ヒントだけでも教えてください
0450nobodyさん
2006/08/18(金) 19:34:37ID:???0451nobodyさん
2006/08/18(金) 19:38:09ID:???0453nobodyさん
2006/08/18(金) 21:05:10ID:???0454447
2006/08/18(金) 21:25:07ID:???Fatal error: Using $this when not in object context in hoge.php line ...
と同じエラーがでます。
0455nobodyさん
2006/08/18(金) 22:08:39ID:???0456nobodyさん
2006/08/18(金) 22:22:50ID:???winXP、apache2.x、php5.x だけどそんなエラーでませんな。
backendからセッションオブジェクトとってきて使ったらどうですか。
0457nobodyさん
2006/08/18(金) 22:25:06ID:???0458nobodyさん
2006/08/19(土) 16:51:46ID:???0459nobodyさん
2006/08/23(水) 20:31:42ID:???Singletonとかの形でコネクションを持っているところがあるといいんだけど
0460nobodyさん
2006/08/26(土) 23:37:48ID:???ってやりゃいいじゃん
0461nobodyさん
2006/08/28(月) 06:50:58ID:???〜〜〜
{include file="footer.tpl"}
毎回書くのが激しく面倒で、何か良い方法が無いものか少し検索。
↓同じような事考えた人ハケーン
ttp://d.hatena.ne.jp/tadito/20060415/1145115774
ページ下部:Smartyのここが
何か方法はありませんでしょうか。
0462nobodyさん
2006/08/28(月) 14:10:42ID:???0463nobodyさん
2006/08/28(月) 16:19:13ID:WBoTQIamtplファイルで配列を表示させる方法を教えてくれませんか。
setAppだと通常の変数しか定義出来ない・・・
↓こんな感じに書いて、array data にテーブルhogeの一覧を格納したいのです。これだと動かないですけど。
function preforward()
{
$db =& $this->backend->getDB();
$result =& $db->query("select * from hoge");
$i = 0;
while ($data[$i] = $result->fetchRow()) {
$this->af->setApp("data[]", $data[$i] );
$i++;
}
}
0464nobodyさん
2006/08/28(月) 16:40:35ID:???>setAppだと通常の変数しか定義出来ない・・・
そんなことはなくて、普通に配列が格納された変数を渡せばいいだけ。
0465nobodyさん
2006/08/28(月) 16:55:38ID:WBoTQIamこれで動きました。ありがとうございます。
while ($data[$i] = $result->fetchRow()) {
$i++;
}
if ( $i > 0 ) {
$this->af->setApp("data", $data );
}
0467nobodyさん
2006/08/29(火) 00:49:44ID:???ethna add-template hoge
するかな。
0468nobodyさん
2006/08/29(火) 02:17:54ID:???Ethna_ViewClassをextendsして
forward()でforward_pathをレイアウト用テンプレートのパスに置き換えて
元のforward_pathをsetAppしてレイアウト用テンプレートで
{include file=$app.forward_path}
とか出来るようにする感じかな
んでレイアウト管理マネージャ作って
$Layout->disable();とか$Layout->set('admin');とか出来るようにしてる
0469nobodyさん
2006/08/29(火) 08:11:57ID:yZ1+igoY静的なコンテンツが半分以上だということが分かりました。
1つのビューに対しては、1つ以上のアクションが必要なので
たとえば、サイトの説明ページを1ページ増やすたびに
何もしないアクションを追加していかなければいけないと
思うのです。これは、そういうものだと諦めるしかないので
しょうか?
これまではフレームワークを使っていなかったので、Web
デザイナーさんに会員認証などの処理を含んだPHPテンプ
レートを渡して、ある程度自由に書いてもらっていたのですが、
アクションを追加しないとページの追加などができないのは
結構厳しいです。
0470nobodyさん
2006/08/29(火) 17:52:14ID:???0471nobodyさん
2006/08/29(火) 22:15:22ID:???自分も今似たような状況にある。
なんとか効率よくテンプレートだけを使用できないかなと思ったけど
結局、静的(半静的)用のテンプレート周りだけEthnaと切り離してやることにした。
ちなみに、↑の半静的ページっていうのは、認証結果なんかも全部必要ないページね。
認証結果や他のEthnaと結構かかわってくるようなページは全部Ethna通してる。
0472nobodyさん
2006/08/30(水) 00:01:26ID:???0473nobodyさん
2006/08/30(水) 08:24:36ID:???他のパラメータでビュー指定して。
0474nobodyさん
2006/08/30(水) 13:01:47ID:???0475nobodyさん
2006/09/03(日) 21:48:10ID:???http://labs.riaf.org/easa/
wikiが見れなくなってるけど
ほかにもいろいろサンプルが見たい
0476nobodyさん
2006/09/04(月) 00:20:13ID:???サンプルでXSS可能なものが多いし。
0477nobodyさん
2006/09/05(火) 21:37:08ID:???例えばEthna_Plugin_Logwriter_Fileを継承して
自分で書いたコードでオーバーライドしたとして
そのclassをどういう手続きを踏めば、
使えるようになるのか、だれか教えてちょうだい。
0478nobodyさん
2006/09/06(水) 07:57:33ID:???0479477
2006/09/06(水) 14:57:37ID:???元のLoggerって生成することなど意識せずとも使えます。
自作のものも生成することなく元のLoggerと置き換わるような
形で使いたいのです。
Controllerの $class_default['logger']を自作のものに書き換えればよいのでしょうか?
0480nobodyさん
2006/09/06(水) 16:21:52ID:???0481477
2006/09/06(水) 16:38:38ID:???コメントのTODOにずばり書いてあった。。。OTL
0482nobodyさん
2006/09/06(水) 20:20:01ID:???$conditionがNULLでWHERE IS NULLとかいうSQLになっちゃう...。
$key, $key_type付きでwhere付きのgetはできるのに、getせずにインスタンスしたそのままでremoveしてもかわらず...
皆さんはちゃんとうごいてます?
0483nobodyさん
2006/09/07(木) 00:23:32ID:???なんかよくわからないけど、いままで変な挙動したこと無いから何か間違ってると思う。
AppObjectでgetしたっていうのがよくわからない。
AppManagerでgetObjectPropとかgetObjectListとかじゃなくて?
AppObjectでgetするのは、AppObjectのpropだけだよね。
新しく作りたいならnewだし。
0484482
2006/09/07(木) 16:25:20ID:???$key_type = array('userid', 'config');
$key = array($userid, $config);
$config1 =& new Test_Config1($this->backend, $key, $key_type);
$data['config'] = $config->get('config');
//$data処理
$config2_values = array(
'userid' => $config->get('userid'),
'config' => $data['config'],
);
$config2 = new Test_Config2($this->backend, NULL, NULL, $config2_values);
$config2->add();
$config1->remove();
とすると
クエリエラー SQL[DELETE FROM config1_tbl WHERE IS NULL]
のエラーで返されます
0485483
2006/09/07(木) 19:29:19ID:???まぁそれはおいといて。
$config2->add();
するなら、
$config2 = new Test_Config(&$this->backend);
$config2->set('userid', $user_id);
$config2->set('config', $data['config']);
$config2->add();
する方が良い。なぜなら、AppObjectをnewするときの第4引数は
全てのプロパティをセットする必要があるからな。2つのプロパティじゃなければ面倒でしょ?
あと、$config1->remove();でWHERE IS NULLは、Test_Config1の
primary_keyがAppObjectでちゃんと設定されて無いと思われる。
もう一度、appobjectのMappingをチェックするのが吉と、
0486nobodyさん
2006/09/07(木) 22:55:15ID:???してるのに何故
$config->get()
typo?
0487nobodyさん
2006/09/08(金) 10:48:28ID:???どうしても生SQLを発行する場面があると思うのですが、
AppObjectを使ったりSQLを書いたりするコードが混ざっていると
気持ち悪い(というか不適切なコード?)な気がします。
実際にEthnaを使っている方はどうされているんでしょうか?
0489nobodyさん
2006/09/09(土) 18:41:06ID:???どこに記述したいいのか、どこにファイルを置けばいいんでしょう?
どこに書いても、libやappにおいてもだめだし
携帯向けにsjisのページが作りたいとおもったけど開発ページにはoutputをどこにおいたらいいの書いてない...
0490nobodyさん
2006/09/10(日) 08:05:27ID:???もちろん、ここはチェックしたよな
http://www.ethna.jp/ethna-document-dev_guide-app-sjis.html
0491nobodyさん
2006/09/10(日) 19:35:53ID:???原因はIncludeパスがずれてたみたいです。
そこはみたんですけど、そのfunctionはどこに書いてどこにおいたらいいのかわからなくて。
0492nobodyさん
2006/09/15(金) 01:32:45ID:???ロードマップでは未到達かもしれないけど、コンスタントに
リリースしてくれたほうが嬉しい。というか、はやく2.1.2から
乗り換えたいので頼んます。。。
0493nobodyさん
2006/09/19(火) 08:05:38ID:???0494nobody
2006/09/19(火) 15:05:49ID:l653wI+U以下のサンプル通りにスクリプトを書いて動作させたけど、
json.tplがないよと怒られます。
流れとして、actionのFlare_Action_IndexCheckからviewのFlare_View_Jsonまでは、
分るけど、この先どこの.tplに、いくの?
http://labs.gree.jp/Top/Document/20060707.html
ヒント頂戴。
0495nobodyさん
2006/09/19(火) 17:21:16ID:???専用のmethodはないのでしょうか?
Ethna_RendarerのgetEngineとかいうのを使ってfetchするしかないのでしょうか?
0496nobodyさん
2006/09/19(火) 22:32:04ID:???tp://some.host/~foo/?action_login=trueというようにアクセスしてる場面を見受けるけどこれを
tp://some.host/~foo/loginみたいな形式に変えることは出来ないんかなぁ?
0497nobodyさん
2006/09/19(火) 22:37:17ID:R6sen3Jlそのメソッドは無いね。
フィルタ使ってob_で拾うとか、いろいろ手段はあるけど。
>>496
mod_rewrite使えば可能。
0498nobodyさん
2006/09/19(火) 23:22:06ID:???Ethna_Controller.php の ChangeLog にこんなのがある。
> Ethna_UrlHandlerクラスを追加(ステキurl対応)
これに期待する。
0499nobodyさん
2006/09/19(火) 23:27:54ID:gBF89jCS場合と、データベースに接続できなかった場合のエラー処理って
どこで行えばいいのでしょうか?
どちらもフレームワークに任せてしまっている部分の処理なので
いまいち解りません…orz
環境はPHP 5.1.6 + Ethna 2.3.0-dev(CVS)です。
0500nobodyさん
2006/09/19(火) 23:39:38ID:???試してないので恐縮ですが、json.tplを出力しようとしている
ということは、Flare_View_Jsonクラスのforward()をオーバー
ライドしていないのではないでしょうか?
0501496
2006/09/20(水) 00:53:00ID:???mod_rewriteを使えば確かに出来そうですね
何とかEthnaで頑張ってみたかったので
http://wasuren.blog67.fc2.com/blog-entry-17.html
を参考にしながらやってみたんですが
どうもうまく動かない。・゚・(ノД`)・゚・。
ちなみに公式に書いてある
http://ethna.jp/ethna-document-dev_guide-action-formname.html
は問題なく出来ますた。(・∀・)
■ このスレッドは過去ログ倉庫に格納されています