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

Zend Framework Part3

レス数が900を超えています。1000を超えると表示できなくなるよ。
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/
0812nobodyさん2010/01/03(日) 00:00:40ID:quLBmdEY
application.iniで下記を指定していた為でした。。

resources.modules[] =

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

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

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

モジュールを共有するなら、ドメインでルーティングするだけでOK
つ Zend_Controller_Router_Route_Hostname
08238212010/01/07(木) 16:22:54ID: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で動かしている環境で、この機能を試すことは出来るんでしょうか?
0824nobodyさん2010/01/07(木) 18:36:43ID:???
> 自宅サーバのlocalhostで動かしている環境で、この機能を試すことは出来るんでしょうか?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

絵文字が本当にウザイですね。
0854nobodyさん2010/01/10(日) 23:24:54ID:IYuPCGtS
>>851
ガシガシ固めるとは?
0855nobodyさん2010/01/10(日) 23:32:58ID:???
ZFがメジャーになっちゃこまる連中もいるのさ
撹乱情報が入るが、惑わされないことだぜ
0856nobodyさん2010/01/14(木) 22:49:08ID: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 での学校全体一覧が出来なくなりました。
どうしたらパラメータが(複数)ついてもつかなくても各条件で適切に動く設定が出来ますか?
お手数おかけしますが宜しくお願いします
08578562010/01/14(木) 22:51:09ID:???
ごめんなさい、routes.search.〜となってるところは全部routes.school.〜のマチガイです
0858nobodyさん2010/01/15(金) 03:18:03ID:???
>856
先に、:ken/type/:typeでのルートを書いといて、
次の条件に:kenでヒットするのを書けば?
どっちを先に書くか忘れたから逆かもしれないけど
08598562010/01/15(金) 06:31:19ID:Ze0M8NRb
>>858
ありがとうございます。そのやり方で考えたんですが、それだとパラメータが増えた時に
その分だけ設定を無限に増やしていかなければならなくなりますよね?
それだと非効率という気がするんです

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

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

なんかうまい方法ないかね
0872nobodyさん2010/01/16(土) 01:52:38ID:???
本家に書けばいいじゃん
0873nobodyさん2010/01/16(土) 03:42:16ID:???
頭いいな
0874nobodyさん2010/01/16(土) 08:00:44ID:???
>>870
issue tracker への投稿なり、 下記URL で紹介したフォーラムでの議論なり、翻訳なり、ぜひ御参加よろしくお願いします。
http://www.zend.co.jp/tech/index.php?cmd=read&page=%A4%BD%A4%CE%C2%BE%2FZend%20Framework%2FFAQ
0875nobodyさん2010/01/16(土) 08:54:30ID:???
それはそうと、ZFは日本語圏では具体的にどういうところが使い勝手が悪いの?
0876nobodyさん2010/01/16(土) 09:17:59ID:???
>>866
そういう関数のこと全部が載ってますか?
それとも載ってるのは主な関数だけですか?
0877nobodyさん2010/01/16(土) 10:30:24ID:???
>>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 を望みます!
0878nobodyさん2010/01/16(土) 12:08:21ID:???
日本だと、特に携帯電話の対応が必須だからこいつは便利。

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

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

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

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

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

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

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

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

$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()の第一引数は何を意味しているのかなと疑問に思い質問させていただきました。
0905nobodyさん2010/01/17(日) 16:35:48ID:???
この程度なら、マニュアルよりソース見た方が理解早いわな
897の言ってることも分からなくもないだろ。
addRouteの第一引数はgetRouteやremoveRouteメソッドから察するに
他のRouteと識別するものなんだろうけど
そもそもルーティングは事前に設計されてるもので
設定から読み込まれたRouteを追加したあとで
動的に取得したり削除したりするケースがあるのかってことだろ
0906nobodyさん2010/01/17(日) 17:59:36ID:kUgFmiiy
>>904
確かにaddRoute()内の $this->_routes[$name] = $route; を
$this->_routes[] = $route; にすりゃ第一引数(識別子)なしにできるんだろうけど、
'default'という名前の Route がデフォルトで定義されている。

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

ぐぐって出てくる解説ページではDBへの接続やDBから取得、追加、削除などもコントローラに書いているようなのですが、
これらは本来Modelに書くべきことなんじゃないかと思っているのですが、ZendFrameworkでは違うのでしょうか?
0911nobodyさん2010/01/22(金) 04:06:00ID:???
Modelを操作してんでないの?
レス数が900を超えています。1000を超えると表示できなくなるよ。