トップページ⇒php
982コメント331KB

【PHPフレームワーク】Ethna【スケルトン自動作成】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2005/08/03(水) 21:00:39ID:TuHx69hT
国産フレームワーク、Ethnaでいい意味で手抜きなプログラミングライフを。

Ethna -PHPウェブアプリケーションフレームワーク-
http://ethna.jp/

SourceForge.jp: Project Info - Ethna
http://sourceforge.jp/projects/ethna/
0382nobodyさん2006/06/21(水) 10:06:11ID:???
>>376
$ lha -x ez_siteadmin.lzh
LHa: Fatal error: Unknown level header
ってエラーで解凍できないけどなんでかな?
0383nobodyさん2006/06/21(水) 16:55:37ID:???
リファラが2chばかりではないか
0384nobodyさん2006/06/21(水) 18:30:16ID:???
皆さんEthnaを2系にバージョンアップするときはどうしてます?

1.既存サイトでpearコマンドを利用してアップデート
2.新規サイトを用意してクリーンインストール+同名でプロジェクト作成+古いスクリプトを展開

今のところ2で行く予定なんですが、1でも大丈夫ですかね?
経験者の方いらっしゃいませんか。
0385nobodyさん2006/06/23(金) 16:11:30ID:???
symphonyつかえばいいのに
0386nobodyさん2006/06/23(金) 17:27:41ID:???
シンポニーってw
0387nobodyさん2006/06/23(金) 17:58:16ID:???
よそのFWスレまで来て布教ご苦労様です
0388nobodyさん2006/06/23(金) 18:03:35ID:???
symfonyはあるけど
symphonyはないから
別の何かだろう
0389nobodyさん2006/06/23(金) 18:29:13ID:???
guessworkって結構楽チンだねー
http://goodjob.boy.jp/chirashinoura/detail/id/78.html
0390nobodyさん2006/06/24(土) 03:49:03ID:XSR1obdz
名前がアウト
0391nobodyさん2006/06/24(土) 12:40:33ID:???
>>386、>>388
お前らは名前の由来の一般英単語も知らんのか。。。
これだから中卒ドキュソは・・・
0392nobodyさん2006/06/24(土) 13:10:29ID:???
>>391
0393nobodyさん2006/06/24(土) 13:18:31ID:???
>391
良かったな辞書を持ってて。
0394nobodyさん2006/06/24(土) 23:27:01ID:???
>>393
うん、電子辞書便利だよ〜(^^)
0395sage2006/07/01(土) 03:09:03ID:YtTgigq9
appObjectって使ってます?
0396nobodyさん2006/07/01(土) 18:32:55ID:???
使ってます。
0397nobodyさん2006/07/02(日) 00:52:57ID:???
使ってないです。
0398nobodyさん2006/07/02(日) 01:10:49ID:???
使ったり使ってなかったり。
0399nobodyさん2006/07/09(日) 00:17:17ID:???
Ethnaの2.1.2入れてみた。
cli用のディレクトリがあったけど、どこかにサンプル無いかな。
0400nobodyさん2006/07/12(水) 10:30:00ID:???
手取り足取り、どこでどうやれば良いか
ご教授頂きたいです。
0401nobodyさん2006/07/12(水) 10:42:46ID:???
>>400
チュートリアルでもやったら?
0402nobodyさん2006/07/12(水) 12:48:18ID:???
ttp://ethna.jp/pipermail/users/2006-July/000396.htmlのことっしょ
0403nobodyさん2006/07/12(水) 12:59:51ID:???
すごい内容だなぁ。
こういう人がどうやってEthna使ってみようと思うのだろうか?
0404nobodyさん2006/07/16(日) 08:55:24ID:qmXQomWm
appObject使ってない人はO/R何使ってんの?
0405nobodyさん2006/07/16(日) 11:11:03ID:???
>>404
AppObject使う利点は、すでにActionFormとの連携ができてるところだけだから、
自前のActionForm extends Ethna_ActionFormを作って、その部分を解決すれば
なんでも使えると思う。

Ethnaはその辺の自前拡張性が楽でいいね。
0406nobodyさん2006/07/17(月) 23:31:12ID:???
>>405
>Ethnaはその辺の自前拡張性が楽でいいね。
別にethnaに限った話でもない
0407nobodyさん2006/07/22(土) 17:28:06ID:???
AppManagerのクラス内から
$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:???
actionやviewから
$smarty->is_cached
とか使いたいんだけど、どげんすればよいとですか?
0411nobodyさん2006/07/23(日) 18:33:26ID:???
Ethna_ControllerのgetTemplateEngine()呼び出せば?
2.3.0からobsoleteだけど。
0412nobodyさん2006/07/23(日) 20:39:01ID:???
>>411
挙動は変わったけどobsoluteではなくね?
0413nobodyさん2006/07/24(月) 10:52:32ID:???
changesに「Ethna_Controller::getTemplateEngine()はobsoleteとなりますので今後はEthna_Controller::getRenderer()をご利用ください」ってかいてあるよ
04144102006/07/25(火) 19:41:00ID:???
>>411-413
まだ試してませんができそうなんですね。
ありがとうございました。
0415nobodyさん2006/07/26(水) 06:20:07ID:???
>>411
obsolete
obsolete
obsolete
obsolete
0416nobodyさん2006/07/26(水) 18:31:39ID:fkuJrgoL
すいません、かなり下らない事かも知れないんですが、セッション時に$form.hogeで値は取り出せないんでしょうか。。
04174162006/07/26(水) 20:00:48ID:???
すいません。
初歩的なミスが原因でした。。
0418nobodyさん2006/07/28(金) 10:53:29ID:???
EthnaでRailsみたいなスマートURLは使えますか?
0419nobodyさん2006/07/29(土) 09:16:44ID:???
つかえる
0420nobodyさん2006/07/31(月) 23:09:52ID:???
テンプレートにObject型を渡して表示させるには、
どのような手続きをとれば良いのでしょうか?
ActionFormを利用してstringsやarrayは渡せるみたいなのですが、
オブジェクトが分かりません。
0421nobodyさん2006/07/31(月) 23:58:43ID:???
setAppNEでできなかったっけ。
0422nobodyさん2006/07/31(月) 23:59:42ID:???
ちなみに、*NEつけるとエスケープなしね。
0423nobodyさん2006/08/01(火) 01:47:11ID:???
>>422
なるほど、ありがとうございます。
自前でエスケープすればいいんですね。
0424nobodyさん2006/08/01(火) 02:07:13ID:???
420です、たびたび申し訳ありません。
試してみました。

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:???
afを書き忘れてしまいました。
$this->af->setAppNE('test',$test);が正しいです。
これでもやはり何も表示されません。

0426nobodyさん2006/08/01(火) 03:11:01ID:???
>>425
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:???
>>426
ありがとうございます。できました・・!
Ethna_Util::escapeHtmlというのが用意されているんですね。
勉強になります。
0429nobodyさん2006/08/06(日) 13:06:54ID:???
Ethna は携帯サイト用の機能を用意しないの?
0430nobodyさん2006/08/06(日) 15:45:40ID:???
そのうちじゃないの
0431nobodyさん2006/08/11(金) 18:27:52ID:M/sj5kXS
Ethna2.1.2 + ADOdb + PostgreSQL でやってる人いたらおしえて

この組み合わせで AppObject使うの危険ですか?

0432nobodyさん2006/08/12(土) 12:07:59ID:???
MySQLしか使えないよ。
0433nobodyさん2006/08/12(土) 12:08:40ID:???
というわけで、Ethnaは使いづらいです。
0434nobodyさん2006/08/13(日) 19:49:07ID:???
他のO/R使えばいいやん
0435nobodyさん2006/08/13(日) 19:58:22ID:???
O/Rマッパなんていらん
0436nobodyさん2006/08/13(日) 21:53:49ID:???
たしかに0/Rマッパなんてなくてもかまわないよね。

それにフレームワーク自体もなくてもかまわいない。
0437nobodyさん2006/08/14(月) 00:02:42ID:???
>>436
そうだな。それからおまえもいなくてもかまわない。
0438nobodyさん2006/08/14(月) 03:20:45ID:???
喧嘩はやめて!
セックスしなよセックス!セックス!
0439nobodyさん2006/08/17(木) 13:54:56ID:???
次バージョン マダー
0440nobodyさん2006/08/17(木) 22:57:32ID:???
http://ethna.jp/ethna-document-dev_guide-form-filter.html
上記の通りやっているんですが、上手くいかないんですが間違ってませんよね。。
試しに送られてきた値に文字列を追加してみたんですが上手くいかないのですが。。
0441nobodyさん2006/08/17(木) 23:17:22ID:???
如何上手くいかないのかぐらいかけ
0442nobodyさん2006/08/17(木) 23:43:41ID:???
>>441
と言われてもそのままなんですが。。
0443nobodyさん2006/08/18(金) 00:01:34ID:???
>>442
……(;゚Д゚)ポカーン
0444nobodyさん2006/08/18(金) 03:54:08ID:???
じぁあ、エスパー呼んでこい
0445nobodyさん2006/08/18(金) 04:51:10ID:???
actionじゃなくてviewの方でsessionの値を得るにはどうしたらいいんでしょうか?
0446nobodyさん2006/08/18(金) 08:03:49ID:???
sessionオブジェクトを取得しろ
0447nobodyさん2006/08/18(金) 08:34:54ID:???
>>446
えと、それはどうすればいいんでしょうか?
0448nobodyさん2006/08/18(金) 10:22:07ID:???
基底クラスのコンストラクタくらい見ようよ
04494472006/08/18(金) 18:04:51ID:???
/app/view/hoge1/hoge2/hoge.phpで
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:???
sessionオブジェクト取ってこいや
0451nobodyさん2006/08/18(金) 19:38:09ID:???
$_SESSION使えや
04524472006/08/18(金) 20:04:50ID:???
>>450
>>449の方法でとってることになりません?

>>451
それだとEthna使ってる意味が半減?
0453nobodyさん2006/08/18(金) 21:05:10ID:???
var_dump($this->session)してみろや
04544472006/08/18(金) 21:25:07ID:???
>>453
Fatal error: Using $this when not in object context in hoge.php line ...

と同じエラーがでます。
0455nobodyさん2006/08/18(金) 22:08:39ID:???
本当にPHP5か?4じゃねぇの?
0456nobodyさん2006/08/18(金) 22:22:50ID:???

winXP、apache2.x、php5.x だけどそんなエラーでませんな。
backendからセッションオブジェクトとってきて使ったらどうですか。
0457nobodyさん2006/08/18(金) 22:25:06ID:???
あー、staticなメソッドから$this呼んでねぇか?
0458nobodyさん2006/08/19(土) 16:51:46ID:???
オブジェクト指向を勉強するには丁度いいかも。
0459nobodyさん2006/08/23(水) 20:31:42ID:???
コントローラーから呼びだすコンポーネント(Ethna_AppManagerを継承していない素のクラス)にDBのコネクションを持たせたいのだがEthnaの持っているコネクションを渡す方法って引数しかない?

Singletonとかの形でコネクションを持っているところがあるといいんだけど
0460nobodyさん2006/08/26(土) 23:37:48ID:???
DBget!!!ズサ━━━━⊂(゚Д゚⊂⌒`つ≡≡≡━━━━!!
ってやりゃいいじゃん
0461nobodyさん2006/08/28(月) 06:50:58ID:???
{include file="header.tpl"}
〜〜〜
{include file="footer.tpl"}
毎回書くのが激しく面倒で、何か良い方法が無いものか少し検索。

↓同じような事考えた人ハケーン
ttp://d.hatena.ne.jp/tadito/20060415/1145115774
ページ下部:Smartyのここが

何か方法はありませんでしょうか。
0462nobodyさん2006/08/28(月) 14:10:42ID:???
Smartyのプリフィルタプラグインで出来るんじゃない?
0463nobodyさん2006/08/28(月) 16:19:13ID:WBoTQIam
質問ですが・・・。
tplファイルで配列を表示させる方法を教えてくれませんか。
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:???
>>463
>setAppだと通常の変数しか定義出来ない・・・

そんなことはなくて、普通に配列が格納された変数を渡せばいいだけ。
0465nobodyさん2006/08/28(月) 16:55:38ID:WBoTQIam
>>464
これで動きました。ありがとうございます。

while ($data[$i] = $result->fetchRow()) {
 $i++;
}
if ( $i > 0 ) {
 $this->af->setApp("data", $data );
}
04664612006/08/28(月) 21:08:49ID:???
>>462
プリフィルタ書いてやってみる事にします。ありがとうございました
0467nobodyさん2006/08/29(火) 00:49:44ID:???
俺ならskelのテンプレに{include}書いちゃって、
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
Ethnaを使い始めたんですが、サイトを構築しているうちに
静的なコンテンツが半分以上だということが分かりました。
1つのビューに対しては、1つ以上のアクションが必要なので
たとえば、サイトの説明ページを1ページ増やすたびに
何もしないアクションを追加していかなければいけないと
思うのです。これは、そういうものだと諦めるしかないので
しょうか?

これまではフレームワークを使っていなかったので、Web
デザイナーさんに会員認証などの処理を含んだPHPテンプ
レートを渡して、ある程度自由に書いてもらっていたのですが、
アクションを追加しないとページの追加などができないのは
結構厳しいです。
0470nobodyさん2006/08/29(火) 17:52:14ID:???
CMSを作れば
0471nobodyさん2006/08/29(火) 22:15:22ID:???
>>469
自分も今似たような状況にある。
なんとか効率よくテンプレートだけを使用できないかなと思ったけど
結局、静的(半静的)用のテンプレート周りだけEthnaと切り離してやることにした。
ちなみに、↑の半静的ページっていうのは、認証結果なんかも全部必要ないページね。
認証結果や他のEthnaと結構かかわってくるようなページは全部Ethna通してる。
0472nobodyさん2006/08/30(水) 00:01:26ID:???
いやだからCMSを作れば
0473nobodyさん2006/08/30(水) 08:24:36ID:???
っつーか、静的コンテンツ表示用の共通アクションを1つ作ればよいだけでは。
他のパラメータでビュー指定して。
0474nobodyさん2006/08/30(水) 13:01:47ID:???
マネージャーとか必要ないのは読み込ませたくないんじゃない?
0475nobodyさん2006/09/03(日) 21:48:10ID:???
いまオープンのEthnaつかったCMSはriafさんが作ってるez_siteadmin(easa?)くらいしかないのかな
http://labs.riaf.org/easa/
wikiが見れなくなってるけど

ほかにもいろいろサンプルが見たい
0476nobodyさん2006/09/04(月) 00:20:13ID:???
EthnaはデフォルトでXSS可能なのがどうもね。
サンプルでXSS可能なものが多いし。
0477nobodyさん2006/09/05(火) 21:37:08ID:???
Ethna_Plugin_Logwriter_File.php に手を入れたいのですが、
例えばEthna_Plugin_Logwriter_Fileを継承して
自分で書いたコードでオーバーライドしたとして
そのclassをどういう手続きを踏めば、
使えるようになるのか、だれか教えてちょうだい。
0478nobodyさん2006/09/06(水) 07:57:33ID:???
そのクラスのオブジェクトを生成すれば使えるようになるわけだが。
04794772006/09/06(水) 14:57:37ID:???
おっしゃる通りなのですが、、、
元のLoggerって生成することなど意識せずとも使えます。
自作のものも生成することなく元のLoggerと置き換わるような
形で使いたいのです。
Controllerの $class_default['logger']を自作のものに書き換えればよいのでしょうか?
0480nobodyさん2006/09/06(水) 16:21:52ID:???
Controllerの$class
04814772006/09/06(水) 16:38:38ID:???
Controllerの$class

コメントのTODOにずばり書いてあった。。。OTL
■ このスレッドは過去ログ倉庫に格納されています