ZendFramework Part2
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
2008/03/05(水) 23:21:24ID:???http://framework.zend.com/
マニュアル
http://framework.zend.com/manual/ja/
m-takagi ver(↑よりたぶん新しい)
http://www.m-takagi.org/docs/php/zend/
API
http://framework.zend.com/apidoc/core/
0910nobodyさん
2009/03/04(水) 02:04:51ID:???消し忘れが怖いから極力使わないようにしてる。
0911nobodyさん
2009/03/04(水) 02:25:46ID:???そこらへんはStagingかProductionかで自動的に制御するようにするのがベストなんじゃない?
RailsはFCGIの引数(?)で切り分けるんだっけ?
ZFだとどうするのがベストかな
0912nobodyさん
2009/03/04(水) 21:45:42ID:LvKH7NWyいやmodelだけzend_dbとかって手もあるんだけどsfとかcakeとかだと旨みが半分以上なくなるよね
0913nobodyさん
2009/03/07(土) 20:45:10ID:LLWgp4UZなんかお手本になるようなのない?
0914nobodyさん
2009/03/07(土) 20:47:56ID:???0915nobodyさん
2009/03/07(土) 23:05:38ID:???どうするのが理想的なのかがいまいち分からないんです
0916nobodyさん
2009/03/07(土) 23:24:57ID:???0918nobodyさん
2009/03/08(日) 01:33:06ID:???0919nobodyさん
2009/03/19(木) 12:15:38ID:???そういう時のメソッド名について、ZFで使われている名前って何かありますか?
0920nobodyさん
2009/03/19(木) 12:24:40ID:???0921nobodyさん
2009/03/19(木) 13:38:32ID:???__call()で受けて_foward()なり_redirect()で飛ばすとかじゃなくて?
0922nobodyさん
2009/03/19(木) 13:46:14ID:???0923nobodyさん
2009/03/19(木) 15:33:49ID:???http://framework.zend.com/manual/ja/zend.controller.action.html#zend.controller.action.subclassing.example-call
ここに書いてあるようなケースで、indexActionとかerrorActionとかで頻出なメソッドがあるのかと思ってました。
0924nobodyさん
2009/03/23(月) 02:42:16ID:cHToeHq1Zend_File_Transfer_Adapter_Http
を使ってみてるんですが、どうあがいても
No temporary directory was found for the file 'uploadedfile'
となってしまいます。
0925nobodyさん
2009/03/23(月) 23:58:01ID:uVBii4+5indexアクションでフォームを出力して、名前を記入+送信して受け手のhelloActionで
「こんにちは、○○さん」って出力するだけ
それだけに3〜4秒くらいかかる なんでだ?
サーバにしてるマシンがボロ過ぎるんだろうか、、 pentium3 933Mhzだが。。
それにしてもスクラッチで作ったほうがいいじゃんてレベルだ
こういう不安はどう原因見つけて解決したらいいんだろう
0926nobodyさん
2009/03/24(火) 00:30:00ID:???まず、Zend_Formは遅いよ。
うちじゃフォームは自前の処理で書いてる。
それから、もしWindowsサーバーならPHPは遅い。
なんにしても、スペックだけじゃ判断しにくい。
その処理に3〜4秒かかって当然とは思わないけど。
スクラッチの方が...って不安は、
作ろうとするものが単純で少量であるほど付きまとう。
一通り機能の揃ったサービス作るつもりで使えば、
メリットが分かるよ。
ただ、ZFは小規模でもつまみ食いできるのがメリット。
このスレでも何度もあるように、
フレームワークとしての枠が凄く緩いから、
Zend_Dateだけ、Zend_Cacheだけって使い方も何てこと無い。
0927nobodyさん
2009/03/24(火) 00:47:11ID:VfITkfEnそうなんですか…アドバイスありがとうございます
モジュール的機能部分だけ利用するのが賢いのはわかるんですが、
パスを書き換えてくれる id=123 → /id/123 のが嬉しくて使っているので
なかなか切り抜き利用だけに割り切れません
今試したら http://localhost/ の上記のフォームを表示するだけで20秒かかりました
送信したらタイムアウトする始末だし、、これって完全に遅すぎですよね どこを調べたらいいんでしょうか?
http://www.dotup.org/uploda/www.dotup.org7168.txt
ソースはこれだけなんですが、おかしいでしょうか?
作りこんでいってやっぱり遅いのが解決しないってことになると時間がもったいなさ過ぎるしどうしよう…
0928nobodyさん
2009/03/24(火) 01:05:50ID:???それフレームワークの機能じゃなくてWebサーバの機能なので
0930nobodyさん
2009/03/24(火) 01:32:08ID:???> それから、もしWindowsサーバーならPHPは遅い
それってFastCGI Extensions for IISで割と解決してない?
Server2003+FastCGIでWP動かしてるけど、それなりの速度で動いてるよ
まぁ、mod_phpがベストなんだとは思うけど
0931nobodyさん
2009/03/24(火) 01:54:11ID:???Zendはルータでやってるけど普通のフレームワークはサーバに任せて同じ事やってる
mod_rewriteでググるよろし
0932nobodyさん
2009/03/24(火) 02:40:32ID:???0933nobodyさん
2009/03/24(火) 02:43:12ID:???エラーハンドラに404エラーを投げたいのですが、どのように書けばいいでしょうか?
0934nobodyさん
2009/03/24(火) 03:04:27ID:???>>933
switch (true) {
case 404にしたいパターンその1:
case 404にしたいパターンその2:
$this->getResponse()->setRawHeader('HTTP/1.1 404 Not Found');
break;
defalt:
}
みたいな
0935926
2009/03/24(火) 21:15:38ID:???テスト用だからか突っ込みどころは色々あるけど、
ソース見る限りじゃ極端に遅くなる原因は無いよ。
んで、ある時は3〜4秒で、今回は20秒、
ってのは流石におかしいんで、ZFより下の層の問題じゃね?
ソースのエンコードやらlocalhostって言ってるとこからすると、
WindowsにXamppか何かで環境作ってる?
どこを調べたらってのは広すぎて困るけど、
・マシンスペックの不足(メモリ足りねーとか)
・マシンの故障(メモリ、HDDの不良とか)
・ネットワーク(ルーター、HUB、NICが腐りかけとか)
・OS(そもそも何使ってて、どんな状態? 他の処理動いてない?とか)
・Webサーバー(これも何使ってる? 静的ファイルでも遅い?とか)
・PHPの設定(メモリ割り当てが何故か異様に少ないとか)
辺りが定番なのかな。
ZFは、ルーターだけでもまあ便利だけど、
一度はMVCとかConfig使い回しとかを組み合わせてみると、
フレームワークとしての向き不向きが見えてくると思う。
俺は変なDBに繋ぎたいんでZF使ってるけど、
フレームワークとして見るなら中途半端ではある。好きだけど。
>>930
ごめん、FastCGI版なら充分速い。
単なるCGI版なWindowsサーバーをよく見掛けるので、言い過ぎた。ごめん。
0936nobodyさん
2009/03/24(火) 21:27:53ID:???0937nobodyさん
2009/03/25(水) 00:07:41ID:4yhBz/QX詳しい意見ありがとうございます
環境は
winXP, 512mb, apache2,
PHPのメモリは memory_limit = 128M
って感じです
普通のネット見たりDTP系のソフト動かすマシンで動かしてるんでまずいんでしょうか?
ウイルスソフトとかバックで動いてるソフトもあるし
あと、
http://pc11.2ch.net/test/read.cgi/php/1236532468/606 も自分です
関係あるんでしょうか?
0939nobodyさん
2009/03/25(水) 00:31:32ID:???前ものっそいテキトーな計測したときは、Linuxでmod_php使った場合の1/10ぐらいの速度しか出なかった
だからIISでFastCGI使った方が良いんだけど、
XPのIIS5.1でも動かせるFastCGI拡張無くなっちゃったみたいね
http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1521
http://www.iis.net/downloads/default.aspx?tabid=34&i=1299&g=6
可能であれば、Server2003かVistaかServer2008で、FastCGI使って試してみると良いと思う
ただ、ZF使うとなるとmod_rewrite必須だから、VistaかServer2008でURLRewrite入れて設定しないとダメかな
http://www.iis.net/extensions/URLRewrite
0940926
2009/03/25(水) 00:38:37ID:???他にでかい処理やってるマシンなら、
そんぐらい遅いのもありえるんじゃない?
DLLのエラーが出てるのは関係あるかもしれん。
Windowsにまだしっかり環境構築できないなら、
Xamppなりにお任せしちゃえば。
0941926
2009/03/25(水) 00:42:39ID:???mod_phpでも遅いのって、知らんかった。
なら解説本なんかでよく見る
「まずはxamppで環境構築しましょう」
に従った人は、みんなそのクソ遅い中でやってんの?
うちの発注元、全員xamppみたいなんだけど…。
0942nobodyさん
2009/03/25(水) 00:49:20ID:???Windows用のPHPやApacheはオプションがフルセット入ってたり
コンパイルオプションが平易なものでそれぞれの環境に合わせてないってだけで
まぁ1〜2割くらいは速度変わるかもしれないけど10倍遅いとかはない
0943nobodyさん
2009/03/25(水) 01:25:37ID:???>>942
FWレベルの構成で試してみろって。1〜2割じゃ済まないぞ
0944nobodyさん
2009/03/25(水) 01:59:45ID:4yhBz/QXhttp://www.iza.ne.jp/news/books/
のページで、仮にこれがnewsコントローラのbooksアクションで出力されてるとして
「最新ニュース」の部分はどうやって出力するべきなんでしょうか?
booksアクション中に該当の最新ニュース一覧を出力するSQLだとかを定義して、
それをviewのパラメータに割り当ててるんでしょうか?
どうも扱い方がわかりません
あと、右側にある「おすすめブログ」の部分ですが、ここみたいに他のページでも
表示されるような記事は、それを出力するプログラムを別ファイルとして持っていて、
それをアクション中にincludeしてviewに割り当てて使いまわすのが正解でしょうか?
フレームワークというより、この手のサイトの作り方の知識の問題かもしれないですが
良かったらアドバイスください。よろしくお願いします
0945nobodyさん
2009/03/25(水) 03:16:15ID:???0946nobodyさん
2009/03/25(水) 03:17:20ID:???もうだめや
あかん
全然わからへん
わて、全然わからへんのや〜
0947nobodyさん
2009/03/25(水) 03:30:02ID:???0948nobodyさん
2009/03/25(水) 10:41:33ID:4yhBz/QX一応モデルについても調べて、、それでもよくわからないので
上記の場合についてだけで良いので、アドバイスもらえたら嬉しいです
よろしくお願いします
0949926
2009/03/25(水) 10:54:28ID:???分かってるとは思うけど、飽くまで一例として。
どうとでも組めるのがZFの方針なんで。
最新ニュース部分は、945の言ってるように、
「本・アート」に該当するニュースを引っ張るモデルを作っておき、
booksアクションからそれを使う。
モデルは、Zend_DBやZend_DB_Table使って、
組みやすいように組むのが良いと思う。
最悪はSQL直書きだけど危ないんで避けた方が無難。
但し、毎度毎度DB叩いちゃ困るんで、
どうせ書き出してあるRSSを読み込むか、
Zend_Cacheなどでキャッシングは必須。
おすすめブログ部分は、
Zend_Layoutを調べてみるべき。
http://framework.zend.com/manual/ja/zend.layout.quickstart.html
このドキュメントの、
「最後に、Zend_Layout のフロントコントローラプラグインが持つ〜」を読もう。
アクションをfowordして、使い回し要素に値を割り当てるか分かるはず。
こっちももちろん、キャッシュは必要。
0950nobodyさん
2009/03/25(水) 10:56:12ID:???ある程度MVCを触ってみて自分なりに得た結論としては
M,V,C,それぞれどう作ろうと自由.正解なんてない.特にモデルに関しては完全に好きなように作って問題ない.
0951nobodyさん
2009/03/25(水) 16:01:42ID:4yhBz/QXアドバイスどうもありがとうございます
あと、モジュールについて知りたいんですが、
モジュール化することでどういうメリットがあるんですか?
「ZendFW徹底入門」を読んでるんですが、機能というかMVCのセットを
フォルダに入れて一まとめにする程度の説明しかなく、
機能的にどう効率的になるというような説明がありません。
コントローラ名やアクション名が変わるというのはわかるんですが、
そんなルールを新たに適用してまで得られるメリットって何なんでしょうか?
0952nobodyさん
2009/03/25(水) 16:42:02ID:???0953nobodyさん
2009/03/26(木) 02:21:26ID:9dMsRXyr$row->findDependentRowset('BOOK')
の結果は行セットだと思うのだけど、
この数をカウントしたり、ほんの名前順に並べたりってどうやるの?
0954nobodyさん
2009/03/26(木) 09:56:35ID:QTaJbB0e<input name="namae" value="taro" />
</form>
というフォームを送信して
aaaコントローラのbbbアクションを実行してるんですが
送信先の画面のURL欄を見ると
aaa/bbb?namae=taro となっています
これで正しい処理なんですか?
aaa/bbb/namae/taroとなるのかと思ってましたが…
上記のようになるのはどういう時なんでしょうか
0955nobodyさん
2009/03/26(木) 10:03:38ID:???<input name="namae" value="taro" />
</form>
0956nobodyさん
2009/03/26(木) 10:04:53ID:???<form action="aaa/bbb/namae/taro" method="get">
〜
</form>
0957nobodyさん
2009/03/26(木) 10:13:44ID:QTaJbB0eどうもありがとうございます
正直、そうなの??って気分です
クエリで送られてきたパラメータを xxxx/yyyyって風に変換してくれるのではなくて
xxxx/yyyyってURLからxxxx=yyyyと解析するということでしょうか。。
スゴイ勘違いしてたのかなぁ
0958nobodyさん
2009/03/26(木) 12:44:12ID:???クエリを送出するのは誰?ZF?
0959nobodyさん
2009/03/26(木) 14:42:56ID:???「モジュール化」そのものに大きな意味があるんじゃない。
開発する対象を切り分けて取り扱える事が重要。
無茶苦茶判り易い点だけ挙げれば、
単一のcontrollersディレクトリに100個もファイルあったら大変って事。
>>957
PHP以前の、どういう環境で何が起きているのか理解できてないと思う。
まずはFirefoxにLiveHTTPHeadersでも入れて、
自分の普段のWeb閲覧が、どんな通信なのか見てみ。
0960nobodyさん
2009/03/26(木) 14:44:14ID:???ある程度の規模のWebアプリケーションを組んでない、
若しくは何となく出来ました程度でしか作ってないんだと思う。
しかもPHPか、出来合いのPerlのCGIを改造したぐらい。
俺の周囲にもこの手の人が結構いて、みんな同じく全体の設計スキルが皆無。
例えば単純でもいいから、練習目的にネットショップを構築してみる。
トップページがあり、商品の一覧や詳細があり、注文がかけられる。
注文は複数の商品を対象と出来て、確定前に変更が出来る。
問い合わせページやお知らせページがあり、送料・手数料の案内がある。
裏には、商品管理、ショップ管理、顧客管理、各種統計もある。
こんな仕組みを、出来れば全部自前で素のPHPから、
PEARもZFも使わずに作れたら、フレームワークの価値がようやく分かると思う。
実際に作り上げなくても、自分だったらどう作るか、ノートに設計を書くだけでも良い。
たくさんの、自分が分かっていない点と、面倒だと感じる点が出てくる。
ZF以前が思い切り足りないから、
ZFが分かんないんだと気付かないと、結局遠回りだよ。
0961nobodyさん
2009/03/26(木) 14:49:56ID:???最初はblogくらいの規模でいいと思う
ベタ書きスクリプト掲示板の次のステップとして
0962nobodyさん
2009/03/26(木) 15:06:11ID:???スタンダードな設計が思い描き難いから、
分かってない人への課題として微妙なんよ。
今の所、ネットショップ課題に設計させると、
結構頑張って考えたの提出してくれてる。
突っ込みも、ユーザー視点でやりやすいし。
0963nobodyさん
2009/03/26(木) 15:49:48ID:???商品名と数量を明記したメールを以下に送付して下さい。
折り返し見積を送付しますので、銀行振り込みもしくは商品代引きでお支払い下さい。
0964nobodyさん
2009/03/26(木) 17:29:12ID:xQu6jBsfショップ構築の引き合い受けた客先で、真剣にそれ提案して、
「その機会損失が無視できないから頼んでるだろが!」
って怒鳴られた先輩いたな。
でも俺も、未だに予算と能力が要求に見合ってない客には、
同じ提案やってるよ。必ずFAX注文用紙も付ける。
0965nobodyさん
2009/03/26(木) 21:11:39ID:xQu6jBsf誰かZend_CacheのPageで、
キャッシュクリアするお作法、しらね?
0966nobodyさん
2009/03/26(木) 21:23:24ID:???その先輩カッコよすぎるな。
FAX注文用紙もウケタ、先輩が先輩なら、後輩も後輩だ。
お前ら面白すぎる。
俺も次そういう話があったら真剣に提案してみるよw
0967nobodyさん
2009/03/26(木) 21:27:07ID:???YiiFrameworkもARで複合キーサポートしてるよ。
ただ、今のところMySQLとPostgreSQLでしか動かないらしい。
ベースはPDOだから、DAOを使ってSQLごりごり書くならOracleでも使えると思うけど
。
0969>>968
2009/03/27(金) 06:39:23ID:HWBmRKPrキャッシュのIDが自動で生成されるよね?
で、その自動生成されたIDを使ってremoveする場合
何をどう使って、IDを指定すべきなの?
って事をききたかったんだ
わかりにくくてごめん
0970nobodyさん
2009/03/27(金) 08:01:42ID:???ネットどころかパソコンも触れたこと無いお土産屋のおっちゃんが、
雑誌でちょっと見て「ネットショップ作ってくれ」って言い出す地方だからな。
いや、真剣に、そういう店にはFAXが最適なんだよ。
購買層も爺婆がメインだし。
ちなみに某温泉特産の湯ノ花は、
静的サイト + FAX注文用紙 + その他宣伝
って構成で、月100は売り上げるようになった。
うちもほぼ放置で管理費もらえておいしいし。
0971nobodyさん
2009/03/27(金) 08:04:10ID:???なんか工夫して実装しないかぎり変更があったら全消しだろうね。
工夫ってたとえば、継承して同じオプションを使いながら_makeId _makePartialIdにアクセスする管理用クラスを書くとか。
0973nobodyさん
2009/03/29(日) 01:01:11ID:1IVpc3cd0974nobodyさん
2009/03/29(日) 04:22:59ID:???アクションコントローラーのpostDispatchは違うっぽいけど。
0975nobodyさん
2009/03/29(日) 07:50:35ID:???単純なデータ取得なら
$sql = select * fro '〜〜 where ** = ?';
$db->fetchAll($sql, $var);
で済むような気がした
0976nobodyさん
2009/03/29(日) 07:52:09ID:???0977nobodyさん
2009/04/08(水) 14:20:28ID:UaY/lmRdControllerやViewには命名規則などがありますが、Model部分に関しては参考となるドキュメントを見つけられませんでした。
0978nobodyさん
2009/04/08(水) 14:21:23ID:???あったところでどうなるというのだ
0979nobodyさん
2009/04/08(水) 14:53:03ID:UaY/lmRdこんなことを想像してました。
loadModel('Class_Name');
0980nobodyさん
2009/04/08(水) 14:58:16ID:???でもモデルってのはコントローラと一対一で対応するものでもないし
複数のモデルを組み合わせることもしょっちゅうだからなぁ
0981nobodyさん
2009/04/08(水) 15:26:25ID:UaY/lmRdinclude先もある程度固定されていますし。
0982nobodyさん
2009/04/08(水) 15:50:27ID:???プラグインローダーでできるよ。
誰かがブログに書いてたな。
あと、1.8でZend_Applicationがリリースされる。
そっちの方が本命かも。
0983nobodyさん
2009/04/08(水) 16:54:18ID:???Javaの人に同じ事やりたいって言ったら怒られるぞ
0984nobodyさん
2009/04/08(水) 16:54:56ID:???自前でクラスファイルを探してインクルードする関数を書いて、
spl_autoload_registerで登録すればいい。
>>982
>Zend_Application
なんだこれ、またあいまいな名前のパッケージが出てきたな。
Zend_Controllerとどう違うんだ?
0985nobodyさん
2009/04/08(水) 17:18:12ID:???0986nobodyさん
2009/04/08(水) 19:59:51ID:???0987nobodyさん
2009/04/08(水) 21:23:43ID:???俺フレームワーク作るっていう使い方してもいいのかな?
0988nobodyさん
2009/04/08(水) 21:30:51ID:???0989nobodyさん
2009/04/08(水) 21:35:46ID:???0990nobodyさん
2009/04/08(水) 22:29:56ID:???そもそも全部使うサンプルなんかあるか?
0991nobodyさん
2009/04/09(木) 00:43:51ID:iT6qHOmL希望としてはZend_Layoutあたりでできたら無効化するのも簡単なのでありがたいのですが、どうやらないようです。
Zend_Controller_Action::init()に毎回記述する方法やZend_Controller_Actionを別途実装する以外の方法があれば教えてください。
0992nobodyさん
2009/04/09(木) 01:23:09ID:???0993nobodyさん
2009/04/09(木) 22:48:43ID:oDPn1AxL0994nobodyさん
2009/04/10(金) 01:04:27ID:???0995nobodyさん
2009/04/10(金) 01:38:26ID:mTlvGODg倒産でもして夜逃げ中かね
0996nobodyさん
2009/04/10(金) 02:03:27ID:???エラーは吐く設定にしてたんだな
どうせエラーなんて出ないしという専門家のおごりか?
0998nobodyさん
2009/04/10(金) 06:39:04ID:???0999nobodyさん
2009/04/10(金) 08:37:23ID:???Zend Framework Part3
http://pc11.2ch.net/test/read.cgi/php/1239320100
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。