トップページphp
1001コメント312KB

Zend Framework Part3

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2009/04/10(金) 08:35:00ID:???
公式
http://framework.zend.com/

マニュアル
http://framework.zend.com/manual/ja/

(有力翻訳者のm-takagiさんのver)
http://www.m-takagi.org/docs/php/zend/

バグ報告
http://framework.zend.com/issues/secure/Dashboard.jspa

API
http://framework.zend.com/apidoc/core/

前のスレッド Zend Framework Part2
http://pc11.2ch.net/test/read.cgi/php/1204726884/
0552nobodyさん2009/09/11(金) 18:36:33ID:???
>>551

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

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で動作すると書かれているので、動くと思うのですが。
0556nobodyさん2009/09/15(火) 18:31:05ID:???
Rewrite自体のエラーなのか、
PHPは実行されるがエラーが表示されるのか、
どっちだ?
0557nobodyさん2009/09/15(火) 18:37:51ID:???
>>556
Zend FrameworkのFile Not Foundエラーぽいです
なので、フレンドリーURLだけが認識していないっぽいです
0558nobodyさん2009/09/15(火) 18:40:00ID:???
>>557
ルーターや、ルクエストの中身を確認してみれ。
0559nobodyさん2009/09/15(火) 18:47:18ID:???
>>557
了解です!!
05605552009/09/15(火) 19:17:52ID:???
根本的なことを教えてください。
度々の質問すみません。

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

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

resources.xxxx....

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

/param/100に書き換えるんですか?(それはどうやったら良いのか。。)または、
?param=100を解析する処理があるんでしょうか?
0585nobodyさん2009/10/08(木) 20:35:44ID:???
パラメータは普通の形式で渡せると思うけど?
0586nobodyさん2009/10/08(木) 20:39:52ID:X59TR80D
早速ありがとうございます
?hoge1=100&hoge2=200 とかでも大丈夫ってことですか?
なんで上手くいかないんだろう…
05875842009/10/08(木) 20:48:10ID: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で飛ばすしかないのかな。そんな馬鹿な…
0588nobodyさん2009/10/08(木) 21:44:22ID:???
getUserParam() では無く getParam() を使えばいい。
http://framework.zend.com/manual/ja/zend.controller.request.html
05895842009/10/08(木) 23:48:30ID:X59TR80D
>>588
アドバイスありがとうございます
あれこれ試した結果、getParam()では無理だったんですが、getQuery()なら大丈夫でした
なぜgetParam()でダメだったんでしょうか?
また、formの送信結果のURIが
/index/m/5/ の形にならず/index?m=5になるのはどうしようもないのでしょうか?
というか、この形で当たり前なのかな
0590nobodyさん2009/10/09(金) 01:36:49ID:???
>>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を書き換えるような形で送信する事になります。
0591nobodyさん2009/10/09(金) 01:54:37ID:???
actionにそう書けばいいじゃん
05925842009/10/09(金) 02:13:23ID:pakGzFf8
>>590
なるほど、ありがとうございました

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

海外では
Symfony>Cake>>>Zend
という感じ?
0596nobodyさん2009/10/09(金) 19:12:29ID:???
国内のSymfonyとZend逆だろ
0597nobodyさん2009/10/09(金) 20:04:41ID:???
>>596
それはない。
0598nobodyさん2009/10/09(金) 20:05:28ID:???
国内
Cake >>>>> Symfony >> Zend
0599nobodyさん2009/10/09(金) 20:17:43ID:???
Zendを全面的に採用してるケースってあるのかね?
一部をライブラリ的に使ってるってのはあるけど。
0600nobodyさん2009/10/09(金) 21:23:35ID:???
俺んとこ
まあ業務じゃなくてお遊び程度の部内管理システムだけど
0601nobodyさん2009/10/09(金) 22:39:55ID:???
zfはmvcを自作できるから好いております
0602nobodyさん2009/10/09(金) 23:06:55ID:???
大規模ポータルで使ってるようち
06035842009/10/10(土) 01:21:23ID: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?

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

後半のモジュールルートと違う形式にするときは、ルーターは書かなくていいけど、
ルートを定義する必要がある。
どっちにしても、routerのドキュメントも合わせて読みたい。
0606nobodyさん2009/10/10(土) 07:33:39ID:???
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のフレームワークが大好きってことだな
まあ下らん比較してる暇あったらコード書けってのが正解だよきっと
0607nobodyさん2009/10/10(土) 07:42:48ID:???
>>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
06085842009/10/10(土) 08:35:15ID:???
>>604,605,607
本当にありがとうございます
教えてもらったとこ勉強します、ありがとう!
0609nobodyさん2009/10/10(土) 08:44:26ID:???
>>606
>symfonyだけ一般の単語でもあるから
これマジで言ってる?
ネタだよね?
0610nobodyさん2009/10/10(土) 12:21:08ID:???
>>608
蛇足かもしれんが

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

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

慣れてくるとごちゃごちゃとやってた頃に比べて
はるかに設計することやロジックの記述に時間を割けるようになる
ZFが最適かはなんとも言えんが俺は色んなの試してZFに落ち着いた
どのフレームワーク使おうがルーティングは大事だ
がんばれ
0611nobodyさん2009/10/10(土) 12:38:29ID:???
symfonyは1.2になったときに見捨てられた感があるな
0612nobodyさん2009/10/10(土) 17:02:28ID:???
おれは、2.0になったときに見捨てられた
0613nobodyさん2009/10/13(火) 12:28:03ID:???
Hello Worldを表示するだけの簡単なサンプルってありませんか?
0614nobodyさん2009/10/13(火) 12:42:07ID:???
ぐぐった?
0615nobodyさん2009/10/13(火) 13:28:39ID:???
どのキーワードでググレばいいか教えてください
0616nobodyさん2009/10/13(火) 14:10:34ID:???
ggrks
ttp://www.google.co.jp/search?hl=ja&safe=off&client=firefox-a&rlz=1R1GGGL_ja___JP327&hs=Flu&newwindow=1&q=zend+Hello+World&btnG=%E6%A4%9C%E7%B4%A2&lr=lang_ja
0617nobodyさん2009/10/14(水) 22:03:58ID:???
>>616
やっさしーなーlol
0618nobodyさん2009/10/16(金) 12:49:04ID:???
>>616
濡れた
0619nobodyさん2009/10/17(土) 12:33:17ID:???
>>616
漏れた
0620nobodyさん2009/10/17(土) 13:27:19ID:???
>>616
蕩れた
0621nobodyさん2009/10/18(日) 13:28:13ID:???
>>616
懣れた
0622nobodyさん2009/10/18(日) 22:21:29ID:XYGMGdV2
萌えた
0623nobodyさん2009/10/21(水) 13:22:20ID:???
2.0はまだかね?
0624nobodyさん2009/10/21(水) 14:18:04ID:???
すいません、今やってます
0625nobodyさん2009/10/23(金) 14:07:32ID:???
FlashMessengerでforwardではクリアされないんだが、redirectすると、メッセージがクリアされてしまう。
リダイレクトではpostDispatchの段階でクリアされてしまうようなんですが、いいアイデアありませんか?
0626nobodyさん2009/10/23(金) 17:24:06ID:???
まずはforwardとredirectの違いを調べよう
Zendの話じゃなくてWebの仕組みとしての違いを
0627nobodyさん2009/10/23(金) 17:45:32ID:???
>>626
言いたいことはわかるし。そこは理解してるつもり。

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

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

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

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

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

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

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

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

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

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

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

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

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

application.ini で
resources.frontController.foo = bar

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

私の記憶が確かなら昔はbootstrapの中でZend_Registryに登録してたので
ちょっと違和感があるんだけど、これでいいよね?
06456442009/11/10(火) 16:44:29ID:???
結局こんなふうにした
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;

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

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

皆さんは、各ページで共通部分のテンプレート化、またテンプレート部分に動的要素を加える方法、
それぞれどうしてますか?
すみませんがご意見お願いします。
06476462009/11/11(水) 20:41:49ID:0BFUpwQj
もしかして、テンプレート領域なのに動的に変化させようってのがおかしいのかな?
でも、完璧に静的な部分なんて今時のwebアプリにあるのか怪しいしなぁ。。
0648nobodyさん2009/11/11(水) 22:07:39ID:???
Viewスクリプトも使えよボケナス
0649nobodyさん2009/11/11(水) 23:26:34ID:???
>>647
スクリプトってのは動的なんだよボケナス
0650nobodyさん2009/11/12(木) 00:40:17ID:???
どうしてその本を見てレイアウトスクリプトが静的だと理解したのか理解に苦しむ
同じ本持ってるけど
0651nobodyさん2009/11/12(木) 12:08:16ID:???
静的を性的と思っているから?
■ このスレッドは過去ログ倉庫に格納されています