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/
0845nobodyさん
2010/01/10(日) 13:48:49ID:IYuPCGtS普通無理に連携しないだろwwww
ZF使いこなしてるのは具体的に
Controller、Applicationを軸に、実装したい機能をコンポーネント
から探してマニュアルやソースコードみて
すばやく実装できるかどうかがポイントだろ?
しょせんWEBアプリ作るためだけなんだから
0847nobodyさん
2010/01/10(日) 14:53:33ID:???0848nobodyさん
2010/01/10(日) 14:59:10ID:IYuPCGtSほかに使いこなせてる例をあげてみて
0849nobodyさん
2010/01/10(日) 15:09:16ID:???でっかい釣り針すなあ。
0850nobodyさん
2010/01/10(日) 15:30:00ID:???細かいライブラリは逆に使ってないわ
0851sage
2010/01/10(日) 21:08:02ID:???担当が変わった場合も引き継ぎ等を含めた保守性も上がりますよね。
MVC部分だけだと勿体ないですよ。
オレオレフレームワークにならないように徹したほうが
良いことが多いですけどね。
特に経営なども絡む管理者層になれば従業員の査定なんかも
しやすいですし、工数も見えやすい。
ZFはZend_Appliationを出したなら、もっとガシガシに固めてくれると
助かるんですけどね。
0852nobodyさん
2010/01/10(日) 21:45:17ID:???特に携帯サイト兼用してたりメール送信絡んだりするシステムは
0853sage
2010/01/10(日) 21:53:16ID:???メールはQdMailのライブラリが良いかもですね。
モバイルについては、、フレームワークだけじゃキツイですね。
絵文字が本当にウザイですね。
0854nobodyさん
2010/01/10(日) 23:24:54ID:IYuPCGtSガシガシ固めるとは?
0855nobodyさん
2010/01/10(日) 23:32:58ID:???撹乱情報が入るが、惑わされないことだぜ
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 での学校全体一覧が出来なくなりました。
どうしたらパラメータが(複数)ついてもつかなくても各条件で適切に動く設定が出来ますか?
お手数おかけしますが宜しくお願いします
0857856
2010/01/14(木) 22:51:09ID:???0858nobodyさん
2010/01/15(金) 03:18:03ID:???先に、:ken/type/:typeでのルートを書いといて、
次の条件に:kenでヒットするのを書けば?
どっちを先に書くか忘れたから逆かもしれないけど
0859856
2010/01/15(金) 06:31:19ID:Ze0M8NRbありがとうございます。そのやり方で考えたんですが、それだとパラメータが増えた時に
その分だけ設定を無限に増やしていかなければならなくなりますよね?
それだと非効率という気がするんです
たとえば、中学校で、かつ女子校のみに限定して絞り込むとき
/:ken/type/:type/joshiko/:joshiko っていう専用のルーティングをまた作らなければならなくなるし
男子校のみなら男子校用、私立のみなら、、それらが組み合わさったら…と無限にパターンを書き加えてくのは
おかしいのではないかなと。まとめて一つで、各要素があってもなくても動く設定は無理なんでしょうか?
そんなはずないと思いつつわからないのです、正規表現を使ったやり方かなと思ってるんですが難しくて…
どなたか、お知恵を頂けると嬉しいです。すみませんが宜しくお願いします
0860nobodyさん
2010/01/15(金) 07:08:02ID:???自前でルートを書いてスクリプトで判定するというのが早そうだよ
matchとassembleを書くだけだから難しくないし
0861856
2010/01/15(金) 10:37:20ID:???ありがとうございます。あれから色々迷ってたんですがあっさり解決しました。
標準のルーティングが/module/controller/action/var1/val1/var2/val2…で動くように
/:ken/type/:type/* の形でワイルドカード(*)を使って任意変数の繰り返しを表現できるのに
気づきました。どうもすみません、ありがとうございました
0862nobodyさん
2010/01/15(金) 17:09:04ID:???まぁ、色々と自分で調べまくって自分にはFWはZFが一番合ってると思って始めたから最期までやり通すけど
0863nobodyさん
2010/01/15(金) 17:23:47ID:???日記書くとこ間違ってるよ。
ここは2ちゃんねるといって不特定多数が読む掲示板なんだよ。
わかったらさっさとお帰り。
0864nobodyさん
2010/01/15(金) 17:55:06ID:???Live2chで見てるからレスが良く付いて活況だなと思っていたら・・・
もうずっとくだらん論争ばかりが続いていたんだな
CakePHPよりもいつも上にあったし
てっきり内容が濃いのかと思ってたらコレだ
0865nobodyさん
2010/01/15(金) 18:13:34ID:???うっかり使いまくりそうなのですが・・・
0866nobodyさん
2010/01/15(金) 18:22:07ID:???素直に入門本を買って順にやって行けば順に解説してくれてますよ、
自分はzendframework徹底入門ての買ったけど。
今までの通常のやり方でいいじゃーんって気分になること多いけど、結局素直に従った方が合理的だったり…
安くはないけど買った方が良いんじゃないかなぁ
0867nobodyさん
2010/01/15(金) 21:36:40ID:???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:???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:???0877nobodyさん
2010/01/16(土) 10:30:24ID:???私も知りたいです。ただし、下記にあげた以外のコンポーネントで。
・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:???ただ文章をツラツラと述べているだけ(その中にたまに簡潔に関数の説明があるだけ)だし
主立ったようなサンプルコードもPHPやPEARのマニュアルに比べても充実していないし
公式運営者達はもっと頑張るべきだな
せめてPHPやPEAR程度のマニュアルにしてほしい
0880nobodyさん
2010/01/16(土) 18:21:35ID:???見てみたらZendと変わらんレベルだったわ
あれじゃ初心者に受け入れられないだろう
0881nobodyさん
2010/01/16(土) 18:27:06ID:???APIの方見てる?
0882nobodyさん
2010/01/16(土) 18:31:16ID:???そんなに困ったことはなかったな
もちろん絵文字関連は独自実装したけども
0884nobodyさん
2010/01/16(土) 18:58:55ID:fYNXcpFq端末判定してviewのみ切り替えてますか? それとも専用のコントローラ書いたりしてるの?
0886nobodyさん
2010/01/16(土) 19:40:42ID:???苦言。
「公式運営者」というものは存在しません。
Zend Technology がお給料出して、開発をバックアップしてください、と依頼した数人は別として、
それ以外はほとんどがボランティアです。
何か足りないものがあると感じたら、
他の誰かがやってくれるのを待つのではなく、
まず「あなた」自身が何かできることがないか考えて見てください。
0887nobodyさん
2010/01/16(土) 20:34:09ID:SFBSLYpyコントローラの中で
$this->view->headLink()->appendStylesheet('/css/index.css');
を指定して、レイアウトでheadLinkを呼び出した際に
example.com/zend_index/css/index.css
が呼ばれるようにするにはどうしたらいいでしょうか?
0888nobodyさん
2010/01/16(土) 20:34:56ID:???Base64 エンコードした後の文字列に <や>(の半角)記号が混ざっていると、サニタイズのための処理で除去されて、結果として文字化けしてしまう、という件ですね
mb_strstr 関数の代わりを実装する方法をまだ思いつけないので、この件とまったままになってます。ごめんなさい
0889nobodyさん
2010/01/16(土) 20:41:59ID:???うろ覚えのまま書いたのでマチガイました。この件ですね。ただいま保留中。。
http://d.hatena.ne.jp/localdisk/20090621/1245611453
0890nobodyさん
2010/01/16(土) 21:33:43ID:???そうだよ、同レベルだよw
しかも俺がザッと見たところ、ZFはまだ関数の説明が文章中たまにされてるし、トピック化されているけれど、CakePHPとSymfonyはそれすらないw
わかりにくいよなw
0891nobodyさん
2010/01/16(土) 21:42:23ID:???0892nobodyさん
2010/01/16(土) 21:54:52ID:???いやスレでの話じゃなくて社内でFWどれ採用するか議論したときの話
未経験者に教えるのに本一冊渡してその通りチュートリアルやってもらうのと
公式ドキュメント見て調べてやってねってのじゃ手間が10倍違うから
0893nobodyさん
2010/01/16(土) 22:57:15ID:???本で勉強するのであれば、主な3つのFWのうち、Zendが圧倒的にいいと俺は思うね
Cakeとか全然じゃん
まぁ、そんな難しくないし、マニュアルコンテンツ自体も非常に少ないけどね
ZFは本はしっかりしているが逆にマニュアルは一番内容量が多く、他の2つよりもFW自体濃い
0894nobodyさん
2010/01/16(土) 23:00:50ID:???0895nobodyさん
2010/01/16(土) 23:22:06ID:???ルートの名前とありますが、何を意味しているのでしょうか?
例えば徹底入門に書かれているコードは
$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:???ごめんなさい、せっかくお答えして頂いたのにおっしゃっている意味がわかりませんでした
下の階層とはどういう事でしょうか?
/controller/action/ココ という事でしょうか?
それか最初の例で言えば、ArticleController.phpの中という事でしょうか?
少し混乱してきました(恥)
自分は今も調べていて思ったのですが、例えば2つ目のコードで言えばaddRouterの'user'は任意で決めたもので、それを何かの関数で参照とか出来るのかなとも思ったのですが、そういうような記述もどこにもされていませんでした
'user'は何を意味しているのでしょうか?
どこかのコード内に記述されているのでしょうか?
マニュアルのほかにもこのサイト(http://codezine.jp/article/detail/2226?p=2)などを参照しましたが分かりませんでした
0898897
2010/01/17(日) 00:20:59ID:???やはりこの第一引数のルート名というのは自分で適当に付けた名前で、自分でこういうルートをフロントコントローラ内に追加しましたという確認をする為だけに付けた名前(例えばxmlでいう接頭辞とか)なのでしょうか?
それともやはり意味があって、何かの為に指定したものなのでしょうか?
0899nobodyさん
2010/01/17(日) 00:47:56ID:???0900nobodyさん
2010/01/17(日) 00:49:21ID:???0901nobodyさん
2010/01/17(日) 01:34:24ID:???読解不能・・・。
混乱してるのは分かるけど、句読点くらいちゃんと使おうよ。
'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:???0904897
2010/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確かにaddRoute()内の $this->_routes[$name] = $route; を
$this->_routes[] = $route; にすりゃ第一引数(識別子)なしにできるんだろうけど、
'default'という名前の Route がデフォルトで定義されている。
で、'default' が気に入らないから消したいって時に、キーとして指定しやすいからって理由だと思う。
0908nobodyさん
2010/01/17(日) 22:04:37ID:???0909nobodyさん
2010/01/18(月) 08:13:43ID:???0910nobodyさん
2010/01/22(金) 03:59:32ID:???なにかMVC構造+MySQLの参考になるようなドキュメントなどはありますか?
ぐぐって出てくる解説ページではDBへの接続やDBから取得、追加、削除などもコントローラに書いているようなのですが、
これらは本来Modelに書くべきことなんじゃないかと思っているのですが、ZendFrameworkでは違うのでしょうか?
0911nobodyさん
2010/01/22(金) 04:06:00ID:???0912nobodyさん
2010/01/22(金) 07:42:22ID:???基本的には、モジュールディレクトリにmodelsとmodels/DbTableを作ってそこにモデルを格納するのが基本
サンプルは動作確認を取りやすいからそう書いているだけで、コントローラでDB操作をするのが本筋じゃない。
他のサンプルもそういうもんだと思ってみた方がいいよ。
俺のお気に入り
http://www.slideshare.net/weierophinney/architecting-ajax-applications-with-zend-framework
実際には、ZFでのモデル実装は自由そのものだから好きに書けばいい。
Modelの設計がわからなかったら、エリックのDDDを通読することをお勧めするよ。
0913nobodyさん
2010/01/22(金) 15:41:24ID:???forwardする度にinit内の処理が実行されて困っています。
0914nobodyさん
2010/01/22(金) 16:34:48ID:???0916nobodyさん
2010/01/23(土) 02:02:45ID:???0917nobodyさん
2010/01/23(土) 09:33:41ID:???0918nobodyさん
2010/01/23(土) 10:14:46ID:???一般的な人はCakeとかもっと簡単なFWの方がいいだろうね
それかPEAR使うとか
フロントコントローラだけでも最初「ウッ」ってくるのに、DBだけでも他と比較にならんほどマニュアルの量多いしw
Cakeなんて比較にならんよw
最初、マニュアルの量の多さに読む気が失せたw
だから、>>917の言っている事は一理あるように俺は思う
0921nobodyさん
2010/01/23(土) 13:50:15ID:???サンプルコードとAPI流し見すればいいだろ
0922nobodyさん
2010/01/23(土) 16:21:33ID:???小さいアプリを作るのであれば開発者はどのフレームワーク使ってもFWの規模を気にすることなんてないだろ
0923nobodyさん
2010/01/23(土) 22:23:26ID:???テンプレートを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();
0924nobodyさん
2010/01/24(日) 00:06:10ID:???やりたくはなかったのですがControllerでRequestに応じて
$viewRenderer->setViewScriptPathSpec(':controller/:action.:suffix')を
書き換えたらすんなり行きました
0925nobodyさん
2010/01/24(日) 18:59:59ID:???解決したんならいいわ
0926nobodyさん
2010/01/24(日) 23:11:27ID:???現在は以下のよう全てのルータに :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"));
よろしくお願いします
0927nobodyさん
2010/01/26(火) 10:29:39ID:???Zendの公式ページ変わった?
今までフロントコントローラだと12章とかあったけど・・・
なんかバージョンの選択も出来るようだし
ってか、1.10になったんか・・・
1.9使ってたけど、次は2.0かなとか期待してたのに・・・
0928nobodyさん
2010/01/26(火) 12:19:14ID: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というのは一度も出てきていないのが急に出てきて、どういうことなのかと疑問に思いまして
0929nobodyさん
2010/01/26(火) 13:59:11ID:???で、ホスト名のルーティングについてはhostnameルートを使う。
使わない場合はどのホスト名でも一致するのが仕様
0930sage
2010/01/29(金) 01:53:29ID:???「Zend Framework を学ぶ」ってあるよ。
0931nobodyさん
2010/01/29(金) 01:59:15ID:???0932nobodyさん
2010/01/29(金) 09:05:45ID:???仲間に「何章の何項目めを参照」とか言ってたし、それをメモとかに書き込んでいるし
0934nobodyさん
2010/01/29(金) 11:01:32ID:???0935nobodyさん
2010/01/29(金) 13:50:18ID:kJXcpR0Q一番下のチェックボックスをクリックしてオンにすると一番上のチェックボックスも一緒にオンになったり、
二番目のチェックボックスをクリックしてオンにすると一番上のチェックボックスも一緒にオンになったり、
二番目のチェックボックスをクリックしてオフにすると一番上のチェックボックスがオンになったりと、
挙動がおかしいんだけど、この挙動を正常にするにはどうしたらいいですか?
0936nobodyさん
2010/01/29(金) 16:32:26ID:???変わったっけ?
俺全然違いが見つけられないんだけど・・・w
ってか、誤植の部分がまだ直ってなかったりしてるな
コードの誤植、日本語の誤植など
0937nobodyさん
2010/01/29(金) 21:00:15ID:???0938nobodyさん
2010/01/30(土) 22:49:31ID:/kADIv2E速さ込みで考察しれ。
0939nobodyさん
2010/01/30(土) 23:39:26ID:p3ZI+mNg0940nobodyさん
2010/01/31(日) 10:13:08ID:???気づいたことがあれば、Issue Tracker でレポートよろしく〜
ttp://framework.zend.com/issues/secure/Dashboard.jspa
0941nobodyさん
2010/02/01(月) 21:12:18ID:???編集画面(editAction)→検証(validateAction)→エラーの場合編集画面(editAction)という形にしたいんだけど、
editアクションにforwardしてくれません。どうすればいいでしょうか?
0942nobodyさん
2010/02/01(月) 21:40:50ID:???0943nobodyさん
2010/02/01(月) 21:47:05ID:???0944nobodyさん
2010/02/01(月) 22:57:43ID:PP9IaUHCレス数が900を超えています。1000を超えると表示できなくなるよ。