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/
0574nobodyさん
2009/09/25(金) 21:46:22ID:???0576nobodyさん
2009/09/26(土) 00:34:43ID:???アプリケーション全体で使う設定ファイルの初期設定みたいなリソースって無いのかなって
思ったんです
0577nobodyさん
2009/09/27(日) 00:28:42ID:???1.9 なら application/config/application.ini に
resources.xxxx....
とか書いとけばいいんでは。
この辺の仕組みはかなり良くできてる。
0578nobodyさん
2009/09/28(月) 22:56:59ID:???0579nobodyさん
2009/09/29(火) 12:23:38ID:???0580nobodyさん
2009/09/29(火) 12:25:41ID:???0581nobodyさん
2009/09/29(火) 14:29:55ID:???0583nobodyさん
2009/09/29(火) 19:25:04ID:???0584nobodyさん
2009/10/08(木) 20:34:18ID:X59TR80DZendFWで検索フォームなど利用すると
/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 とかでも大丈夫ってことですか?
なんで上手くいかないんだろう…
0587584
2009/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:???http://framework.zend.com/manual/ja/zend.controller.request.html
0589584
2009/10/08(木) 23:48:30ID:X59TR80Dアドバイスありがとうございます
あれこれ試した結果、getParam()では無理だったんですが、getQuery()なら大丈夫でした
なぜgetParam()でダメだったんでしょうか?
また、formの送信結果のURIが
/index/m/5/ の形にならず/index?m=5になるのはどうしようもないのでしょうか?
というか、この形で当たり前なのかな
0590nobodyさん
2009/10/09(金) 01:36:49ID:???>なぜ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:???0592584
2009/10/09(金) 02:13:23ID:pakGzFf8なるほど、ありがとうございました
>>591
アクションにそう書くというのはどうしたら良いんでしょうか?
良ければ教えてください
僕も590さんの言う、javascriptで書き換えるしか思いつきません
0593nobodyさん
2009/10/09(金) 10:09:13ID:???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:???0598nobodyさん
2009/10/09(金) 20:05:28ID:???Cake >>>>> Symfony >> Zend
0599nobodyさん
2009/10/09(金) 20:17:43ID:???一部をライブラリ的に使ってるってのはあるけど。
0600nobodyさん
2009/10/09(金) 21:23:35ID:???まあ業務じゃなくてお遊び程度の部内管理システムだけど
0601nobodyさん
2009/10/09(金) 22:39:55ID:???0602nobodyさん
2009/10/09(金) 23:06:55ID:???0603584
2009/10/10(土) 01:21:23ID:fTRVAJ6Oどうもありがとうございます
ビューヘルパーの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ルーター書けよ
0605nobodyさん
2009/10/10(土) 03:29:00ID:???そう。前半部分については、デフォルトのルーターでできるから、urlオプションで
コントローラーとアクションとパラメータを与えれば、/kensaku/index/var/10を
取得できるよ
後半のモジュールルートと違う形式にするときは、ルーターは書かなくていいけど、
ルートを定義する必要がある。
どっちにしても、routerのドキュメントも合わせて読みたい。
0606nobodyさん
2009/10/10(土) 07:33:39ID:???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:???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
0610nobodyさん
2009/10/10(土) 12:21:08ID:???蛇足かもしれんが
フレームワークってのは開発時にたいてい必要な
似通っててつまらない処理の記述量を減らすためのものでもある
んでそういう処理のひとつとしてルーティングっていう
どういうリクエストをどう捌くかってのものがある
Zend FrameworkではZend_Controllerが
フレームワークとしての大きな役割を担ってて
ルーティングもそのひとつ
あるルートに対してデフォルトや任意の
モジュール・コントローラー・アクションを割り当てたりする
慣れてくるとごちゃごちゃとやってた頃に比べて
はるかに設計することやロジックの記述に時間を割けるようになる
ZFが最適かはなんとも言えんが俺は色んなの試してZFに落ち着いた
どのフレームワーク使おうがルーティングは大事だ
がんばれ
0611nobodyさん
2009/10/10(土) 12:38:29ID:???0612nobodyさん
2009/10/10(土) 17:02:28ID:???0613nobodyさん
2009/10/13(火) 12:28:03ID:???0614nobodyさん
2009/10/13(火) 12:42:07ID:???0615nobodyさん
2009/10/13(火) 13:28:39ID:???0616nobodyさん
2009/10/13(火) 14:10:34ID:???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
0622nobodyさん
2009/10/18(日) 22:21:29ID:XYGMGdV20623nobodyさん
2009/10/21(水) 13:22:20ID:???0624nobodyさん
2009/10/21(水) 14:18:04ID:???0625nobodyさん
2009/10/23(金) 14:07:32ID:???リダイレクトではpostDispatchの段階でクリアされてしまうようなんですが、いいアイデアありませんか?
0626nobodyさん
2009/10/23(金) 17:24:06ID:???Zendの話じゃなくてWebの仕組みとしての違いを
0627nobodyさん
2009/10/23(金) 17:45:32ID:???言いたいことはわかるし。そこは理解してるつもり。
でもさ、FlashMessengerってセッション使ってるわけじゃん?
なんか、上手いことできないかな〜って。
0628イとウ
2009/10/25(日) 15:44:34ID:sG/ZSqsYZend_Validate のメッセージを和訳していただきたいのですが
ここでお願いするのは間違えていますか?
現在、メッセージ・テンプレートの抽出( gettext 形式)まで行いました。
0629nobodyさん
2009/10/25(日) 15:47:34ID:???0630イとウ
2009/10/25(日) 15:50:18ID:sG/ZSqsY相場はいくら位でしょう?
また共有目的で無料というのはいかがでしょう。
0631nobodyさん
2009/10/25(日) 15:55:00ID:???0632イとウ
2009/10/25(日) 15:59:08ID:sG/ZSqsY単語数:923
文字数(スペース含む):5553
文字数(スペースなし):4648
です。
0633nobodyさん
2009/10/25(日) 16:11:06ID:???そのバリデートを組み込むたびに一つずつ翻訳というかvalidateの目的通りの日本語を埋めていけばいいだけなんじゃないのか
0634nobodyさん
2009/10/25(日) 16:18:23ID:???0635イとウ
2009/10/25(日) 16:19:15ID:sG/ZSqsYZend_Validate のデフォルトのメッセージ・テンプレートを
日本語で書いたものを必要としています。
私には Zend_Validate_Barcode_* を使う日は来ないと思いますが
お願いする対称に含みます。
また、ネット上で和訳を検索し一部分埋めています。
まったく手を着けていないものは約 30 個あります。
手を着けた約 70 個についても修正などをお願いしたいです。
共有に関しては
・レンタルサーバの代金などの費用をこちらで払いつづける
・現在こういった目的に適した領域がありそちらを借りる
などがあると思いますが、まだ考えていません。
0636nobodyさん
2009/10/25(日) 16:20:35ID:???理由はデフォルトのエラーメッセージのまま使う人が殆どいないので
0638イとウ
2009/10/25(日) 16:31:08ID:sG/ZSqsYZend_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そうします。
と言って、ここで発言を止めた方が良いでしょうか?
0640nobodyさん
2009/10/25(日) 16:42:29ID:???賛同を得てみんなでやろうってんじゃなくてさ。
まぁ今までなかったのは、バリバリ作ってる人達が必要としてなかったからということでもあるんだけど。
0641イとウ
2009/10/25(日) 16:56:14ID:sG/ZSqsYありがとうございます。勉強になりました。
私事ですが
今回初めて( PHP なのに ) python を使い Zend/Validate 以下から
メッセージ・テンプレートを抽出し gettext 形式で保存する。
など新しく試したことも多かったので
>>637
の方向を試して見ようと思います。
0642nobodyさん
2009/10/26(月) 22:27:51ID:???0643nobodyさん
2009/11/04(水) 14:03:58ID:???0644nobodyさん
2009/11/10(火) 13:13:58ID:???application.ini で
resources.frontController.foo = bar
モデルの中で
Zend_Controller_Front::getInstance()->getParam('foo');
私の記憶が確かなら昔はbootstrapの中でZend_Registryに登録してたので
ちょっと違和感があるんだけど、これでいいよね?
0645644
2009/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徹底入門)を見ると、レイアウトスクリプトは全く静的なモノって印象ですが
そこに動的な要素を加えることは出来るんでしょうか?
皆さんは、各ページで共通部分のテンプレート化、またテンプレート部分に動的要素を加える方法、
それぞれどうしてますか?
すみませんがご意見お願いします。
0647646
2009/11/11(水) 20:41:49ID:0BFUpwQjでも、完璧に静的な部分なんて今時のwebアプリにあるのか怪しいしなぁ。。
0648nobodyさん
2009/11/11(水) 22:07:39ID:???0650nobodyさん
2009/11/12(木) 00:40:17ID:???同じ本持ってるけど
0651nobodyさん
2009/11/12(木) 12:08:16ID:???0652nobodyさん
2009/11/12(木) 15:37:09ID:???動的に変更しなきゃ逝けない頻度を詳しく調査して、可能な限り静的で済ませたほうが共用レン鯖の負荷は軽いよ。
0653nobodyさん
2009/11/12(木) 15:51:48ID:???0654nobodyさん
2009/11/13(金) 12:33:09ID:DRo8fFM6あまり相手にしないほうがいいとおも
0655age
2009/11/13(金) 16:57:28ID:c9uuCv2RZend_Service_Amazon_CustomerReviewについて質問。
reviewerを取得できないのですが、ReviewerのNameを取得する方法
はあるのでしょうか。
0656nobodyさん
2009/11/16(月) 14:46:40ID:???0657nobodyさん
2009/11/18(水) 12:26:14ID:???コンストラクタの第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)
0658nobodyさん
2009/11/19(木) 22:55:31ID:???0659nobodyさん
2009/11/20(金) 02:58:54ID:???ソースコード見て使い始めちゃったほうが。
ヲレリファレンスウェブをzendで作ればいいじゃんw
0660nobodyさん
2009/11/22(日) 12:47:29ID:Q6zaAGKZドキュメンターで自動的に作ったリファレンスもあるけど、API(引数)知りたい
ぐらいの事だったら確かにソース直接見たほうが早いよね。
それよりもquickstartをもっと充実させてほしい。
0661nobodyさん
2009/11/22(日) 18:14:02ID:???0662nobodyさん
2009/11/22(日) 20:41:23ID:???0663nobodyさん
2009/11/22(日) 20:53:21ID:Q6zaAGKZ0664nobodyさん
2009/11/22(日) 20:58:09ID:???俺はZendがPHPのフレームワークに触れた最初だったんだが、
どう作ればいいかさっぱり分からなかった。
日本語で書かれた公式ドキュメントは情報少ないしね。
手探り状態でやっていってもいいんだが、時間かかってしょうがない。
最初の1歩くらい導いてほしい。
0665nobodyさん
2009/11/22(日) 21:10:41ID:???0666nobodyさん
2009/11/22(日) 21:14:32ID:???なかなか子どもできないなーと思ってたら、違う場所に入れてたなんて
こともあるしね。
最初が肝心。
0667nobodyさん
2009/11/22(日) 21:33:09ID:???0668nobodyさん
2009/11/23(月) 16:10:56ID:???Windows×ZFの際に、何かボトルネックがある気がします。
■すばやく表示される
・自宅のVMware上のApache(Ubuntu)で動かすZFアプリケーション
・レンタルサーバー上のApache(Debian)で動かすZFアプリケーション
・自宅のApache(Win)で動かす、ZFを使わないアプリケーション
■表示までに時間がかかる
・自宅のApache(Win)上で動かすZFアプリケーション
上記を総合すると、Win×ZFという環境の場合、どこかに問題が潜んでいる気がするんです。
根本的な原因を探るには、もうちょい切り分ける必要があると思うんですが、
あとどういう検証するべきでしょうか。
教えて、問題解決の達人の誰か!
0669nobodyさん
2009/11/23(月) 16:20:10ID:???あと、include_pathでZFライブラリがあるpath指定が後ろの方にあるためとか。
うちも開発環境がWin上だけど、ZF使ったからって特別遅く感じたことはないな。
0670668
2009/11/23(月) 16:30:46ID:???同一マシン上で、WinとLinux(VMですが)の比較をしているので、
ストレージの問題ではなさそうです。
ゲストOS側で遅くなる、ということならまだありそうですが、ホスト側のWinが遅いので・・・。
include_pathについては、調べたらWin側のが1つ多くなってましたが、
いかんせん1つなので違うと思います。
でもサーバー内の設定から検証してみる必要もありそうですね!
ヒントを得ました。ありがとう。>>669
0672668
2009/11/23(月) 16:42:15ID:???一度リロードを押すと、レスポンスまで10秒ほどかかるけど、
次にリロードしたときは、一瞬で表示される。
何らかのキャッシュまわりが怪しい気がしてきました…。
とはいっても、ZFアプリケーション自体の設定は何も違わないわけですが。
まずSmarty(Zend_Viewから呼んでる)を疑って、キャッシュを消してみたけど、
特に変わらなかった。(早いときは早いし、遅いときは遅い)
DBについてはphpMyAdminとか使ってる限りはサクサク動くからこれも違うらしい。
やっぱりphp.iniとかhttpd.confとか探らなきゃダメなのかも…。
>>671
ただ単に開発環境での作業効率が落ちるからイライラしているだけで、
肝心の本番サイト自体はサクサク動くから、必ずしも大きな問題ではないわけで、
飽きて諦める可能性も大w
あんまり期待はしないで。
■ このスレッドは過去ログ倉庫に格納されています