- 1 名前:nobodyさん [2005/08/03(水) 21:00:39 ID:TuHx69hT]
- 国産フレームワーク、Ethnaでいい意味で手抜きなプログラミングライフを。
Ethna -PHPウェブアプリケーションフレームワーク- ethna.jp/ SourceForge.jp: Project Info - Ethna sourceforge.jp/projects/ethna/
- 227 名前:nobodyさん mailto:sage [2006/04/18(火) 18:32:18 ID:???]
- >>226
アクションクラスだから $this->af->ae->getMessageList()
- 228 名前:224 mailto:sage [2006/04/18(火) 23:57:24 ID:???]
- >>225-227
ありがとうございました。>>227でアクセスできました。
- 229 名前:nobodyさん [2006/04/23(日) 21:24:44 ID:AC8rHv07]
- 2.1.0-preview1が公開されてるよ。
試験的に導入してみよう。
- 230 名前:nobodyさん mailto:sage [2006/04/23(日) 22:40:17 ID:???]
- generate_project_skelton.phpがなくなってた。。
- 231 名前:nobodyさん mailto:sage [2006/04/23(日) 23:47:24 ID:???]
- beta.ethna.jp/ かっこいい!
早くこれにしてくんないかなー。 やっぱりサイトがかっこいいと、いいもの使ってる感がでていい。
- 232 名前:nobodyさん mailto:sage [2006/04/23(日) 23:55:56 ID:???]
- >>231
本気か嫌味かわからん・・・
- 233 名前:nobodyさん mailto:sage [2006/04/24(月) 00:09:17 ID:???]
- 現行よりはいいよ。
清潔感あるし。最近はやってるねこういうデザイン。
- 234 名前:nobodyさん mailto:sage [2006/04/24(月) 02:08:52 ID:???]
- 俺はあまり好きじゃないな。
なんかセンス古くない? Mapleのデザインはシンプルでいいと思う。
- 235 名前:nobodyさん mailto:sage [2006/04/24(月) 22:43:00 ID:???]
- sidebarが下にずれとる@Safari
- 236 名前:nobodyさん mailto:sage [2006/04/25(火) 01:37:43 ID:???]
- ADODBとか標準がうれしい
- 237 名前:nobodyさん mailto:sage [2006/04/25(火) 03:21:23 ID:???]
- おー、サイト変わってたのか。
2.0.1→2.1.0の変更点ってまだ載ってない?
- 238 名前:nobodyさん [2006/04/26(水) 11:31:00 ID:d7Bd/O1A]
- Operaもずれとる
- 239 名前:nobodyさん mailto:sage [2006/04/28(金) 15:09:37 ID:???]
- >>221
つまり、「ユーザー登録を行ったあとにユーザ一覧を表示する」ってことでいいかな? これは掲示板でいえば「投稿したあと記事の一覧に戻る」みたいなかんじ? ここはredirectするのが正しい。 Actionのreturnでtemplateやviewを呼んで表示させた場合ブラウザ内部で POSTしたデータをもったまま画面遷移してしまうのでリロードしたときに 再度データ送信してしまう可能性がある。のでredirect。 これはMojaviとか他のフレームワークでもフレームワーク使ってなくても同様。 redirect.tplってのを作ってそこのHTMLのMETAで飛ばすとGREEっぽい。 (ActionでsetApp('redirect_to', 'example.com/'); return 'redirect'って感じで) このへんのテクニックは近日発売の超極めげふんげふんにある ソースコードに書いてあります。あれはView一つあるかないかくらい。 >>223 そのケースはエラー発生時にエラー画面に飛ばすということだから>>221とは ちょっと違う感じ。Formのvalidationでエラーがでたときの話? もう少し具体的な例をあげてくれると答えられるかもしれません。
- 240 名前:nobodyさん mailto:sage [2006/04/28(金) 15:33:16 ID:???]
- >>239
ありがとうございます!
- 241 名前:nobodyさん mailto:sage [2006/04/29(土) 17:22:44 ID:???]
- フレームワークを使うメリットがいまだに分からん。
PHPを覚えたうえに他人が決めたルールをさらに覚えるなんてムダな・・・
- 242 名前:nobodyさん mailto:sage [2006/04/29(土) 18:08:49 ID:???]
- >>241
なら苦労し続ければいいと思う。 フレームワークにメリットがなければRailsもCatalystも流行らないわけで。
- 243 名前:nobodyさん mailto:sage [2006/04/29(土) 19:07:51 ID:???]
- j;;;;;j,. ---一、 ` ―--‐、_ l;;;;;; 『フレームワークなんて使うよりも
{;;;;;;ゝ T辷iフ i f'辷jァ !i;;;;; 自分ルールで書いた方が早いし分かり易いじゃん』 ヾ;;;ハ ノ .::!lリ;;r゙ `Z;i 〈.,_..,. ノ;;;;;;;;> そんなふうに考えていた時期が ,;ぇハ、 、_,.ー-、_',. ,f゙: Y;;f 俺にもありました ~''戈ヽ `二´ r'´:::. `!
- 244 名前:nobodyさん mailto:sage [2006/04/29(土) 23:07:46 ID:???]
- 一人でやってるうちは良いんだけどね。>おれおれ主義
自分はあんまりセンスが良くないので、達人のエッセンスを流用できて 勉強にもなったし、メリットは大きかった。
- 245 名前:nobodyさん mailto:sage [2006/04/29(土) 23:29:25 ID:???]
- 中途半端にフレームワーク使おうとすると
逆に辛くなるよね。 身体まるっと投げ出すくらいにすると結構楽になる。
- 246 名前:nobodyさん mailto:sage [2006/04/30(日) 00:08:03 ID:???]
- Ethnaのドキュメントってオンライン版だけしかないんかな?
- 247 名前:nobodyさん mailto:sage [2006/04/30(日) 11:18:33 ID:???]
- Irvine でも使って落としたら
- 248 名前:nobodyさん [2006/04/30(日) 13:31:50 ID:9b2aSJKI]
- 上の方でもちょっと話題出てたけど
action1→action2→view2 ってのはむりなのかい? どうしてもやりたい場合はリダイレクトが無難? 他のフレームワークではできるの?
- 249 名前:nobodyさん mailto:sage [2006/04/30(日) 15:29:15 ID:???]
- >>248
なんでActionをわける必要がある? あるとすれば設計がおかしい
- 250 名前:nobodyさん mailto: [2006/04/30(日) 17:12:39 ID:???]
- >>242
だって全然苦労してないもん。 一つのスクリプトなんてせいぜい500行以下(大規模なアプリはそれらを複数組み合わせる)だし、 そんなもん1日あれば十分書ける。 繰り返し出てくる似たような処理は以前に作ったコードを関数化してコピペすりゃいいし、 フレームワークどころかクラスの必要性すら感じない。
- 251 名前:nobodyさん mailto:sage [2006/04/30(日) 17:22:53 ID:???]
- >250
自分の手足のような再利用性の高いコードをたくさん持ってる人にはたしかに一理あるかも。 逆に言うと、フレームワークの機能を手足のように使えるようになればいろんな人がコミットした便利なコードがどんどん使えるようになるのでは?
- 252 名前:nobodyさん mailto:sage [2006/04/30(日) 17:26:22 ID:???]
- >>250 のサイトはメンテ大変そう。
- 253 名前:nobodyさん mailto:sage [2006/04/30(日) 18:03:02 ID:???]
- まあ今も今後も250しかそのスクリプトに関わる事がないなら別にいいんじゃないか。
- 254 名前:nobodyさん mailto:sage [2006/04/30(日) 19:07:53 ID:???]
- つか、直接Ethnaに関係ない話題は
オブジェクト指向スレか、フレームワークスレでやったほうがいいよ
- 255 名前:250 mailto: [2006/04/30(日) 20:01:12 ID:???]
- >>251
フレームワークを手足のように・・・は、その通りかもね。 でも俺は個人的には他人のソースを読んで理解する手間をかけるなら、自分で書くほうが早いと思う。 >>252 他人が関わるとなると大変だろうね。でもコメント含め、極力分かりやすく書いてるけど。 ここにいる人たちは個人開発でもフレームワークを使ってるんだろうか??
- 256 名前:nobodyさん mailto:sage [2006/04/30(日) 20:40:12 ID:???]
- 既に慣れてるから個人開発でも使ってるよ。
分かりやすいしね。
- 257 名前:250 mailto: [2006/04/30(日) 21:11:35 ID:???]
- >>256
でもさ、いくら慣れようとも、やっぱり他人の作った枠組み(フレームワーク)を 使うことによってまた新たな(余計な)問題や悩みが出てくるわけだよね。 だからこのスレみたいな質問スレもあるわけだし。 ってことは、チーム開発でもしない限り、フレームワークなんて 使うだけ二度手間で無駄だと俺は思うんだが。
- 258 名前:nobodyさん mailto:sage [2006/04/30(日) 21:27:42 ID:???]
- デザパタとかのプログラミング的教養が
自然に身に付くメリットもあるよ
- 259 名前:nobodyさん mailto:sage [2006/04/30(日) 23:17:46 ID:???]
- >>257
他人のソースに学ぶものなど無いと思うんなら、そのままでいいんじゃない? スレ違いなんで続きは↓なんかでやってはいかがでしょう。 [PHP]フレームワークについて語るスレ3[総合] pc8.2ch.net/test/read.cgi/php/1145971945/l50
- 260 名前:nobodyさん mailto:sage [2006/04/30(日) 23:43:57 ID:???]
- >>258
たしかに、俺はEthnaを使えるようになる過程で ・ORM ・MVC について、勉強させられた。 結果として、それらが理解できて今幸せだけど、>>250みたいに、 その壁を超えるのが嫌ってのもわからんでもないから、それはそれで良いと思う。 ただ、今のところ、出てきた問題が「余計」とか思ったことはないなー。 その問題が解決されたときに「また勉強になった」と思えたし。 あと、Ethnaはそれに固着した問題が出にくい構成だと思う。 結構「なんでもあり」で素晴らしいフレームワークだと思ってる。 (と、話をEthnaに戻す)
- 261 名前:nobodyさん mailto:sage [2006/05/01(月) 00:22:31 ID:???]
- >260
私もすごく勉強になってます。 初心者から中級者になるのってとても溝が深いと思うけど、Ethnaを使いこなそうと思ってがんばる過程がその一助になるんじゃないかなぁと妄想してます。 ところで、ここのToDoみてハアハアしてます。 beta.ethna.jp/index.php?ethna-document-roadmap かなりテンコ盛りですよねー。正式版はいつになるのかなぁ。 postgreSQL好きなので Ethna_AppObject改善 直SQLサポート DB依存改善 ってところを先行でお願いします。ぺこり。
- 262 名前:nobodyさん mailto:sage [2006/05/01(月) 00:36:34 ID:???]
- ところでEthnaは基本的にPHP4をベースで
バージョンアップしていくと考えていいのかな? 先日ちょっと触ってみて良さそうだったので 本格的にEthnaで開発しようと思ってるんだけど、 基本的にまだバージョン4の環境の方が多いので・・・。
- 263 名前:nobodyさん mailto: [2006/05/01(月) 00:45:41 ID:???]
- >>260
新しい知識や枠組みを理解して「ランナーズハイ」を得るのはいいけど、 問題はそれが実際にどれくらい役に立つか、どれくらい生産性を上げるか、に尽きるよね。 >>250みたいに、1日〜数日で書けるようなスクリプトのために わざわざフレームワークが必要なのかどうかが疑問。 (そもそもPHPでそこまで大規模なものを作る必要がある個人や組織って、そんなに多くいるか??)
- 264 名前:nobodyさん mailto:sage [2006/05/01(月) 01:08:28 ID:???]
- >>263
> >>250みたいに、1日〜数日で書けるようなスクリプトのために 一つ一つのスクリプトは小さくてもサイト全体では何十個も書くわけで、 それが統一的な書式で書かれるメリットはあるんじゃない? また、協業するほどの規模ではなくても、メンテナンスを他人に任せる ことはあるし、その時に考えたやプロセスの流れをゼロから説明するよりも、 Ethnaの用語を共通語として説明する方が楽という面もあるなぁ。 引き継ぐ人にはEthnaの勉強をしてもらわないといけないけど、自分流を 押し付けられるよりは反発が少ない>経験上 ま、250氏は物は試しで Ethna を使って2,3アプリを作ってみて 判断すれば良いんじゃないかな?
- 265 名前:250 mailto:sage [2006/05/01(月) 01:48:07 ID:???]
- >>264
なるほど、それはたしかに一理ありますね。 でも俺はアホだからEthnaを勉強するのにすげー時間がかかりそうですorz あと、「サイト全体では何十個も」って、いったいどんな規模のサイトなんだろう・・・?? たとえばmixiを例にとると、1000行以下のスクリプトが15個くらいあれば足りると思うんだけど・・・
- 266 名前:nobodyさん mailto:sage [2006/05/01(月) 02:02:25 ID:???]
- >>265
mixiは15個じゃ足りない。1000行よりももっと小さくファイルを分割する。
- 267 名前:nobodyさん mailto:sage [2006/05/01(月) 02:58:52 ID:???]
- >>266
具体的に何にいくつ使うんだ?? 表面的に見えてるもの(home.plなど)だけで10個くらい、 裏方で動いてるであろうもの(cronで動かしてるもの含む)も せいぜい10〜20個くらいじゃないか? どんなに多く見積もってもせいぜい30だな。
- 268 名前:nobodyさん mailto:sage [2006/05/01(月) 04:08:04 ID:???]
- >>248
mapleはできる >>249 1,ユーザ一覧と、ユーザ登録フォームがあるページ 2,ユーザを登録するためにフォームに入力->submit 3,validateエラーなので1に戻す 普通にテンプレートだけ指定すると当然ユーザ一覧は表示されない だから1のアクションをもう一度実行したい。 location使ってもいいけどフォームの入力値が保存されないのが問題
- 269 名前:nobodyさん mailto:sage [2006/05/01(月) 04:15:37 ID:???]
- >>268
そういう場合は共通の動作(ユーザ一覧を取得とか)をactionクラスの中のメソッドにして 3の時にもう一回そのメソッド呼ぶって感じで処理してるな。 俺も他にスマートな方法があったら知りたい。
- 270 名前:nobodyさん mailto:sage [2006/05/01(月) 05:22:22 ID:???]
- >>267
見えてるものだけでも30は超えるだろ トップ、登録、ログイン、ログアウト 日記検索、表示、日記書き込み、コメント一覧 友たち一覧、コミュ一覧、足あと プロフィール表示、編集、設定変更 紹介文表示、書き込み、写真編集 掲示板一覧、編集、閲覧 コミュ検索、参加、退会、誘う、管理人まわり レビュー検索、編集、閲覧 メッセージ表示、送信 フォトアルバム検索、編集、閲覧 ヘルプ、mikly、リリース情報
- 271 名前:nobodyさん mailto:sage [2006/05/01(月) 10:43:38 ID:???]
- >>270 に加えて
mixiの中の人が使う管理ツールとか、バッチ処理を行うcronとか 広告まわりの管理機能も必要だな。ニュースの取り込みもある。 数えればきりがないし、今後どんどん増えていくだろう。。 最初は少なくても、あれをやりたい、これをやりたいって言ってるうちに だんだん膨れ上がっていくことはWEBでもよくある話だ。 なのでフレームワークを導入しておくメリットはあると思う。 >>261 なんかTODOふえてるなー。てんこもり状態だ。 JSONやAjaxもいいけど、DBまわりの改善を強く望みます!!
- 272 名前:nobodyさん mailto:sage [2006/05/01(月) 11:15:30 ID:???]
- >>268
なるほど意味わかった。 >>269のやり方が正解。 ただし>>269はActionのメソッドとして実装しているけれど ここは「ユーザー一覧を取得するメソッド」を持つ AppManager(ProjectId_UserManagerとか?)を作って それをActionから呼び出す。 AppManagerにすればどのActionからでも使えるし。 基本的に画面の遷移、フォーム制御以外のロジックは AppManagerに全部かいてしまうのが良い。
- 273 名前:nobodyさん mailto:sage [2006/05/01(月) 11:35:03 ID:???]
- >>270
あっ、そっか!! ちょっと数え方を勘違いしてた。 そうだよね、それくらいあるよね。 で、数は多いけど一つ一つはけっこう単純で簡単なスクリプトって感じだよね。 >>271 とりあえず基本機能だけに絞れば、2〜3日あれば一人で作れそうだよね??
- 274 名前:nobodyさん mailto:sage [2006/05/01(月) 15:02:53 ID:???]
- >>273
ロールやセッション、DB周り、一つ一つにエラー処理といろいろと 考え出すときりがないし、無いと問題になるから。 むしろその辺をFWに任せたり、無視できれば楽w。
- 275 名前:nobodyさん mailto:sage [2006/05/01(月) 16:29:57 ID:???]
- >>273
見込みが甘すぎないか。。 単純な基本機能だけなら、すぐにできるかもかもしれないが、 細かな機能を揃えてアプリが大きくなるにつれ、 メンテコストはどんどん上がり、開発速度はどんどん落ちるぞ。 mixiの規模なら動作検証テストを行うだけでも大変だ。
- 276 名前:nobodyさん mailto:sage [2006/05/01(月) 16:30:03 ID:???]
- >>274
俺はむしろエラー関係やセキュリティ関係などをFWに任せてしまったときに、 万が一FWの不具合または自分の理解不足や使い方のまずさのせいで 何か問題が起こると手が付けられないので、自力でやったほうが安心できるw
- 277 名前:nobodyさん mailto:sage [2006/05/01(月) 17:51:12 ID:???]
- >>275
機能にしぼるっていってるんだから、規模は別でしょ
- 278 名前:nobodyさん mailto:sage [2006/05/01(月) 23:38:44 ID:???]
- とりあえず、スレ違い。
- 279 名前:nobodyさん mailto:sage [2006/05/02(火) 00:24:21 ID:???]
- っていうか大規模サイトの動作検証テストってどうやるんだろ?
たとえば、数万人が同時にアクセスしたときの状況なんて どうやって事前にテストするの??
- 280 名前:nobodyさん mailto:sage [2006/05/02(火) 01:25:50 ID:???]
- >>279
個人サイトだけど、 アパッチベンチで付加テストでやったよ。
- 281 名前:nobodyさん [2006/05/02(火) 07:06:11 ID:9MMBFPNj]
- Ethna使ってるGREEは
複数のDBを使ってると思うんだけど Ethnaは分散DBとかクラスタリングに対するアプローチを提供しているの? Ethna使ったらそのへん少しは楽になる?
- 282 名前:nobodyさん mailto:sage [2006/05/02(火) 11:13:31 ID:???]
- >281
mysql のレプリケーションには対応してるよ。 複数DBが設定できて、それぞれにRead(slave)とWrite(master)の属性をつける感じ?
- 283 名前:nobodyさん mailto:sage [2006/05/03(水) 05:34:31 ID:???]
- >>282
・テーブルごと、read/writeごとに 適切なDBサーバに接続してクエリ発行 ・上層では、どこに接続しているかを知る必要はない って形にしたいんだ。 レプリケーション対応ってことはそのあたりも 考慮されてるってことかな。 ちょっと触ってみる(`・ω・´)
- 284 名前:nobodyさん mailto:sage [2006/05/03(水) 19:49:17 ID:???]
- ファイルをアップロードするフォームを付けたいと思っています。
デフォルトの状態で、確認画面を出しつつファイルをアップする事って可能でしょうか? サンプルのサインアップのように確認画面を出すと、一応ファイル情報は渡っているのですがプロセス終わっているので一時ファイル消えてしまうのです。 GREEだと、確認時点で既に目的のディレクトリにUPしてファイルのIDを渡しているようなのですが、これと同じようにすればいいのでしょうか…。
- 285 名前:nobodyさん mailto:sage [2006/05/03(水) 20:42:40 ID:???]
- >>284
なにをいいたいのさっぱりわからん。
- 286 名前:nobodyさん mailto:sage [2006/05/03(水) 22:24:45 ID:???]
- >>285
あはは。同じく。 >>284 GREEのサイトの動作で良いなら同じようにすれば良いし、 不満があるなら分かるように書いてくれ。
- 287 名前:nobodyさん [2006/05/04(木) 09:38:15 ID:rkFCz1JB]
- Ethna_SessionのisValidメソッドでは
IPを元に妥当性チェックをしています。 IPが変わる環境を想定して 「同一ネットワーク範囲」になっていると思うのですが このメソッドはIPがコロコロ変わる携帯の環境でも適用OKなのでしょうか?
- 288 名前:nobodyさん mailto:sage [2006/05/04(木) 10:38:37 ID:???]
- あとセッションをDBに保存したいのですが
そのあたりどうするのがベストな解なんでしょう? Ethna_Sessionを継承してControllerのclassプロパティを Ethna_MySQL_Sessionとかいう感じに書き換えるだろうと思ってたのですが www.itt-web.net/modules/xeblog/?action_xeblog_index=1&cat_id=18 こちらのブログを見ると、 DBコネクションが取れないようです。 基幹オブジェクトの生成順序を変更すればいいのかなーとも思いますが… どんなもんでしょう?
- 289 名前:nobodyさん mailto:sage [2006/05/05(金) 14:20:10 ID:???]
- Ethna_DB_PEAR::queryに
プレースホルダ用のパラメータ渡したら 渡ってなかった(´・ω・`) 自前でSQL全部組み立てて渡さないといけないのね AppObject使わない場合 エスケープはどうするのがEthna流?
- 290 名前:288 mailto:sage [2006/05/06(土) 10:19:17 ID:???]
- こんな感じで解決しました。ぽえーん。
○Ethna_Backendを拡張 コンストラクタの最後で、 自分自身をEthna_Sessionの拡張クラスに渡す。 またshutdownDBでコネクションを廃棄してしまわないよう、 何もしないメソッドでオーバーライドする。 ○Ethna_Sessionを拡張 DbSessionHandlerオブジェクトを生成、ハンドラとしてセット。 Backend受け取り用のメソッドも追加。 Backendを受け取ったらDbSessionHandlerにdbオブジェクトをセット。 ○DbSessionHandler 読み込み、保存等
- 291 名前:nobodyさん [2006/05/06(土) 16:18:47 ID:10gQsHXE]
- なんで公式サンプルみれんのん?(´・ω・`)
- 292 名前:nobodyさん mailto:sage [2006/05/06(土) 17:34:27 ID:???]
- うん、俺も思ってたw
- 293 名前:nobodyさん mailto:sage [2006/05/06(土) 18:56:51 ID:???]
- デモ「サインアップ」が見えなくなったのは、Sample_SmartyPlugin.phpと中に定義されている
関数と、Ethna/class/SmartyPlugin.phpの中に同じ名前の関数が入ったから。 だから重複しているぞとエラーが出る。preview2.1.0にはなかったんだけど beta2.0.2-20060502あたりから入ってる。
- 294 名前:nobodyさん [2006/05/06(土) 19:29:09 ID:10gQsHXE]
- postgresでAppObject使ってみてるんだけど、
primaryつけたら、なぜかgroup byしてエラーになるんですよね。。。 Ethna_AppObjectの_getSQL_SearchPropを書き換えればいいのかな? それだとバージョンアップ時に面倒なので、何か他に良い回避策無いでしょうか。
- 295 名前:nobodyさん [2006/05/06(土) 20:40:31 ID:06TlKyoI]
- Mojaviで言うforwardみたいな、
「Actionを実行して、その結果画面を変数に得る」機能ってないの? ないとすれば、いくつかの小さな画面から構成される画面は どうやって構築するのがEthna流?
- 296 名前:nobodyさん [2006/05/06(土) 22:41:29 ID:10gQsHXE]
- アプリ共通のカスタムチェックメソッドはどうやって定義するの?
>>76 みたく一個一個のactionFormに書くしかない? Ethna_ActionForm.phpに直接書くのは避けたい。 あああ。慣れるのに時間がかかる〜。
- 297 名前:nobodyさん mailto:sage [2006/05/06(土) 23:09:53 ID:??? BE:25416522- ]
- Ethna_ActionFormを継承したクラスを作成して、それの中に書いているよ。
個々のActionFormは、先に作ったクラスを継承させている。 Ethna_ActionClassでの処理も同様に。
- 298 名前:nobodyさん mailto:sage [2006/05/07(日) 07:41:44 ID:???]
- 継承を前提としたクラスは
基底クラスからinitializeメソッドとかを呼び出す形にした方が いいんじゃないかな?(Template Method) 現状だと初期化処理するために コンストラクタをオーバーライドしないといけないから。
- 299 名前:nobodyさん [2006/05/07(日) 11:18:24 ID:ql08TCab]
- >>297
なるほど!ありがd!! >>298 とりあえず今は parent::Ethna_ActionForm($controller); って逃げとくしかないのがベター?
- 300 名前:nobodyさん [2006/05/12(金) 23:01:13 ID:rwERuLLO]
- 作った再利用可能なオブジェクトは
どこに入れてる?
- 301 名前:nobodyさん mailto:sage [2006/05/13(土) 01:16:56 ID:???]
- >>300
曖昧な質問かも。 再利用可能って、そのアプリ内で?別のアプリでもって意味で? 前者なら/app後者なら/lib さらに、オブジェクトってインスタンスの意味? インスタンスはAppManager使えばsingletonとして問題無し。
- 302 名前:nobodyさん mailto:sage [2006/05/13(土) 11:56:24 ID:???]
- ごめんシングルトンのインスタンスのつもりだった
シングルトンは基本AppManagerにしていけばいいんだね
- 303 名前:nobodyさん [2006/05/13(土) 17:20:23 ID:+4PvLPs5]
- AppManagerって登録した数だけDBに接続してるね。
それって何か不安。 接続する処理消したけど。
- 304 名前:nobodyさん mailto:sage [2006/05/13(土) 17:29:45 ID:???]
- 手元にないし詳しく見てないけどそれは違うのでは?
多分すばやくアクセスできるように DBのインスタンスを持たせてるだけだと思うけど
- 305 名前:nobodyさん [2006/05/13(土) 17:37:51 ID:+4PvLPs5]
- ああ本当だ。isSetでセットされてればそれ返してる処理があった。
- 306 名前:nobodyさん [2006/05/13(土) 17:56:51 ID:+4PvLPs5]
- 登録してあると、DB必要ないページでもいちいち接続しちゃうのはやっぱり嫌だね。
使わないマネージャーまで含めて全部初期化処理実行されるのも負荷が気になる。
- 307 名前:nobodyさん mailto:sage [2006/05/13(土) 21:57:38 ID:???]
- >>306
本当に接続してる? 神の設計でそんなダサイことはしないと思う。 backend->getDB()がなされるまでDB接続はしないんで、 AppManagerをnewする段階ではDB接続はしないんじゃまいか? で、getDBするところって、AppObject::searchProp()してるところ 以外では無くって、少なくともAppManagerのコンストラクタでは getDBしてないんで、DB接続は行わない。 よくあるパターンでいえば、 AppManager::getObjectPropList AppManager::getObjectList もしくは、new AppObjectの時点で初めてDB接続を行う。 余談だけど、Ethnaの設計の上手いところは、newしたAppManagerを 各AppManagerで使うときに、ちゃんと参照渡しにしてるんで(フツーそうだけどPHPが(ry)) シングルトンとして成立してる。つまり軽い。
- 308 名前:nobodyさん [2006/05/13(土) 23:00:13 ID:+4PvLPs5]
- 接続はしてるみたいだよ。DB停止させてみたら
DB使ってないところで接続エラー出たし。 さっき登録してるって書いたのはコントローラの $managerに書いて使う時の話ね。(チュートリアルのように) 見てみたら AppManagerをextendsして そのコンストラクタ内で $backend->getDBList(); となって、getDBListの中でgetDBしてると。 だからAppManager継承してコンストラクタ変更したクラス作ればまぁ解決なんだけど。 ちょっと・・・・ダサいよね。 便利さと引き換えか。
- 309 名前:nobodyさん mailto:sage [2006/05/14(日) 01:27:21 ID:???]
- まあDBは使うケースの方が多いからそうなってるんだろう
俺はセッションを必ず発行するようなやり方じゃないのに 感心したけどな。 って感心するほどでもないのかもしれんが Mojaviは必ずセッション張ってたから。
- 310 名前:nobodyさん [2006/05/14(日) 15:46:31 ID:rwAYtESF]
- Appマネージャーはセッション作ってるけどな。
Mojaviは設定ファイルでセッション使うか選択できるっしょ。
- 311 名前:nobodyさん mailto:sage [2006/05/14(日) 16:30:16 ID:???]
- 携帯でセッション使う場合ってEthnaの場合はどうすればいいの?
tplで<?=SID?>って書いても表示されないし・・・
- 312 名前:nobodyさん mailto:sage [2006/05/14(日) 19:09:57 ID:???]
- これの公式はなんでアプリケーションが作れるなんて表現使ってるんですかね?
アプリケーションって言うかこれで作る物って単なる記事ですよね? アプリケーションというからには一体どのようなメリットがある物を作れるのでしょうか? エスナ自体がアプリケーションというのは分かりますが…
- 313 名前:nobodyさん mailto:sage [2006/05/14(日) 19:16:14 ID:???]
- >>312
なにか根本的に勘違いしてる気が…
- 314 名前:nobodyさん mailto:sage [2006/05/14(日) 19:54:39 ID:???]
- 312はスルーで
- 315 名前:nobodyさん mailto:sage [2006/05/14(日) 21:08:48 ID:???]
- あ、ごめんなさい。
PEARや.NEET Frameworkみたいな物なんですね? 勘違いしてました。 私は規模の小さい物しか作らないので使いそうにありませんね。 2度と来ません。 さようなら。
- 316 名前:nobodyさん [2006/05/14(日) 23:15:02 ID:KFG0Cy87]
- 未定義Action名が呼ばれた時用の
Actionてどこで定義したらいいん?
- 317 名前:nobodyさん mailto:sage [2006/05/14(日) 23:16:12 ID:???]
- ここにあった
スマソ ethna.jp/ethna-tutorial-app-fallbackentrypoint.html
- 318 名前:nobodyさん [2006/05/16(火) 12:03:40 ID:YezSXlp+]
- こんなネ申な設計ってどうやったらできるようになるん?
漏れがやると、設計しても、後で終わってみたら ぐちゃぐちゃになってるんだけど。。。
- 319 名前:nobodyさん mailto:sage [2006/05/16(火) 12:18:06 ID:???]
- >>318
そうでもないと思うが、やりたければ、何かのフレームワークを参考にしたらよろしい これもstruts参考とかだったはずだし
- 320 名前:nobodyさん mailto:sage [2006/05/16(火) 13:49:55 ID:???]
- フレームワーク全般で見れば神設計はちょっと言い過ぎ
ソース見たら結構雑草精神入ってるよ 分かりやすくて好きだけど
- 321 名前:nobodyさん mailto:sage [2006/05/16(火) 19:40:38 ID:???]
- ソースが見やすいですよね。
- 322 名前:nobodyさん mailto:sage [2006/05/16(火) 20:02:53 ID:???]
- あと日本語コメントがかなり助かる
- 323 名前:nobodyさん [2006/05/17(水) 11:33:31 ID:HV8AbfRa]
- >>219
久しぶりに覗いたら質問したいレスがあったので便乗しますが、 私もDBアクセスのエラー検出で困っています。 例えば下記の様にクエリを実行します。 $db =& $this->backend->getDB(); $res =& $db->query($sql); $sqlにでたらめなクエリ(存在しないテーブルへのアクセスなど)を記述しても、 DB_ErrorではなくDB_Resultが得られます。 ですので、DB::isError($res)はfalseを返します。 当たり前ですが、Ethna::isError($res)でも結果は同じでした。 さらに$res->fetchRow()するとDB_Errorが取得できます。 最悪、フェッチしてその結果を判定することはできるのですが、 やっぱり変ですよね?
- 324 名前:nobodyさん mailto:sage [2006/05/20(土) 00:48:40 ID:???]
- >>323
MLに投げたほうが良いと思う
- 325 名前:nobodyさん mailto:sage [2006/05/22(月) 05:31:33 ID:???]
- >>323
MLに投げるときはPEAR::DB最新バージョンでの動作確認してからでよろしく。
- 326 名前:nobodyさん mailto:sage [2006/05/24(水) 21:21:21 ID:???]
- 2.1期待アゲ
- 327 名前:nobodyさん mailto:sage [2006/05/25(木) 14:29:12 ID:???]
- O/Rマッピング使ってたり確認画面なんか出すと、余計なスラッシュ取り除くのがとても面倒そうなんだけど
みんなmagic_quotes_gpcはhtaccessとかの設定でOFFにして使ってるの?
|

|