1 名前:nobodyさん mailto:sage [2008/03/05(水) 23:21:24 ID:???] 公式 framework.zend.com/ マニュアル framework.zend.com/manual/ja/ m-takagi ver(↑よりたぶん新しい) www.m-takagi.org/docs/php/zend/ API framework.zend.com/apidoc/core/
2 名前:nobodyさん mailto:sage [2008/03/05(水) 23:25:27 ID:???] ついに立った。 来るべき時が来た。 その名は勇者「Zend Framework」 君は生き残ることができるか!?
3 名前:nobodyさん mailto:sage [2008/03/06(木) 05:21:30 ID:???] 何気に公式サイトを訪れたら1.0.4になってた。 ほんの一部ZF1.0.3本体を弄ったんだよなぁ、どこだったか思い出せん...orz 差分取るしかないか。
4 名前:nobodyさん mailto:sage [2008/03/06(木) 16:16:28 ID:???] 1.5RCも出てるぜ
5 名前:nobodyさん mailto:sage [2008/03/06(木) 18:15:35 ID:???] Zend_Formしてみようと思うんだけど、 これってZend_Viewを使うこと限定なのか? Zend_View使わずSmarty使ってるんだけど、そのままrenderできないのかな
6 名前:nobodyさん mailto:sage [2008/03/06(木) 18:35:53 ID:???] ちなみにソース require_once 'Zend/Form.php'; $form = new Zend_Form; $form->setAction('/')->setMethod('post'); $form->addElement('text', 'name'); echo $form->render(); 出力「error」
7 名前:nobodyさん mailto:sage [2008/03/06(木) 22:21:48 ID:???] >>3 svn使いなされ
8 名前:3 mailto:sage [2008/03/07(金) 01:17:52 ID:???] >>7 ん? ZFを自分のリポジトリにつっこんで差分取ったり管理しろってことかな? 弄ったのはどこかの正規表現だったかな。 まぁupdateの度にdiffで確認するよりSubversionにつっこんだ方が楽だろうけど、 で、実際はどうする? 俺はZF1.0.3で初めて使ったんだけど、 1.0.3をsvnにつっこんで、branch分けしてそこに俺々修正したものをつっこむ。 1.0.4をtrunkでupdateしてbranch側でmergeって感じになるのかな。
9 名前:nobodyさん mailto:sage [2008/03/07(金) 03:49:03 ID:???] フレームワークのソースは触ったら後々面倒だろ
10 名前:3 mailto:sage [2008/03/07(金) 04:59:24 ID:???] >>9 そう、俺もそう思う。 弄ったのはバグだろうと思われるところだけ。 どうせそのうち修正されるだろうと思ってたから ちょっと悩んだんだけど、継承せずに直で弄った。 確かググったら出てくる有名どころのバグだったと思うよ。 だから、修正箇所をちゃんと控えてupdateしたときに確認すればいい程度なんだろうけど、 ZFを初採用してバタバタしてたから控えてなかったのだ(´・ω・`)
11 名前:nobodyさん mailto:sage [2008/03/07(金) 05:00:54 ID:???] メソッドの型がインタフェースと違うって話?
12 名前:3 mailto:sage [2008/03/07(金) 08:55:10 ID:???] ゴメソ ちょっと混同してた。 有名どころって書いたのはmb_encode_mimeheaderが入れる改行だったんだけど、 こちらはZF本体を弄る必要がないね。 ひとつはZF入門本に載っていたZend_Mailのバグなんだけど、 本当にバグなんかな? 1.0.4でも修正されてないし、修正しなくてもよさそうな気もするが、 検証せずにとりあえず適用してる。 あと、Zend_DateのRFC2822の正規表現。これはZFが悪いんじゃなくて 某メール鯖が悪いんだけど、正しく拾えないので悩みつつZF側を修正した。 /**以下チラシの裏 trunkに1.0.3をつっこむ 1.0.3を分岐して俺々修正 trunkに1.0.4をつっこむ 1.0.4を分岐して1.0.3の俺々修正をmerge ってなかんじでやってみた。 1.0.4つっこんだときに1.0.3との差分を見たけど 1000以上のファイルで修正されてた。 追加されてたのは5ファイルだけ。 **/
13 名前:nobodyさん mailto:sage [2008/03/07(金) 14:48:59 ID:???] まあ普通はFW本体はリポジトリに入れないな なんとか自前で継承して挙動の変更できないか検討して 止むを得ず本体のコードを変更する場合は その該当ファイルのみコミットしておくかな、自分なら rubyは再定義しやすいから FWの一部分の挙動をちょろっとだけ変えるってのも楽なんだがな
14 名前:nobodyさん mailto:sage [2008/03/07(金) 22:38:40 ID:???] またRubyか(呆
15 名前:nobodyさん mailto: [2008/03/08(土) 00:28:19 ID:???] >>12 Zend_Mailの件はiconv_mime_encodeの対応待ち扱いなので、先はまだまだ長そう framework.zend.com/issues/browse/ZF-1950
16 名前:3 mailto:sage [2008/03/08(土) 01:56:10 ID:???] ZF本体を弄らずに継承などで済ませるならそもそもリポジトリにつっこむ必要ない。 で、例えばZend_Mailのバグフィックスとかデフォルト文字コードをISO2022JPに 変更したMy_MailをZend_Mailから継承して作ったとするでしょ。 当然クライアントコードにはrequire_once 'My/Mail.php'とか new My_Mail() などが ちりばめられるのだが、将来ZF側でフィックスされたり文字コードもmbstring_language から自動判別されるようになり、My_Mailはお役ご免になったりしても クライアントコードをいちいち書き換えたりするのも馬鹿らしいので中身が空のMy_Mailを 引きずることになる。 どうせMy_*を管理しなきゃならんのならZF本体を弄っても手間はあまり変わらないよなぁ。 他の人はどうしているんだろうと悩みつつ、時間がないのもあって前回はZF本体を弄っちゃった。 幸い外からも接続できる鯖を持ってるし、svn+sshで接続可能な様にしているので、 ZF専用のリポジトリを作って管理していけば、出先からでもcheckoutやexportできる。 本来フレームワークを直接弄るなんて邪道なんだろうけど、それはZFの完成度がまだまだ 低いと言うことで納得して、逆にリポジトリを立てることによって、遠慮なしに弄っていけるから ある意味"すっきり"した感じがする。
17 名前:nobodyさん mailto:sage [2008/03/08(土) 02:28:39 ID:???] FW本体をバージョンアップして自分の意図したように変更がかかった場合はいいけど、 自分の意図してないように変更がかかったらどうすんの? またFW本体をハックする? あと、FWがバージョンアップしたら自分のリポジトリで管理しているバージョンと マージするんよね?そっちの方が手間暇かかりそうな気がする。。。 まぁここらへんは人それぞれなんだろうけど。。。 俺はFW本体はいじらない派。
18 名前:nobodyさん mailto:sage [2008/03/08(土) 02:42:05 ID:???] 今日1.5RC2が出ますよ
19 名前:3 mailto:sage [2008/03/08(土) 03:17:30 ID:???] >>17 もろに修正箇所が衝突したら手動マージしなきゃならないが、 でなければマージそのものはそんなに手間かからないんじゃ? と思ってる。 本体を弄らず継承でが王道で、本体を弄ってしまうのは邪道だとは思う。 Zend_Mailのデフォルト文字コードなんてのは、継承で書き換えるのが どう考えても普通。Smartyなんかも結構弄ったけど、基本的には 継承したり、新たなプラグインやフィルターを書いてた。 でもね... まぁ人柱気分でやってみるよ。 本体再書き換えしなきゃならんときも出てくるだろうけど、 そのうち、拡張は別だが修正は減ってくるだろうと願ってる。 (まだそんなに弄ってないけど、弄りたいところは他にもあったし) FW使いながら、貧乏コードって言われそうだ(^^;
20 名前:nobodyさん mailto:sage [2008/03/08(土) 03:33:37 ID:???] バグなら報告すればいいのに
21 名前:nobodyさん mailto:sage [2008/03/08(土) 05:32:10 ID:???] バグならpatch書いて取り込んでもらえばいいだけじゃん
22 名前:nobodyさん mailto:sage [2008/03/11(火) 14:16:57 ID:???] Zend内でphpで吐き出したものを 同じZendからfile_get_contentsで読み込めないの?
23 名前:nobodyさん mailto:sage [2008/03/11(火) 18:55:26 ID:???] 読み込めるんでない?
24 名前:nobodyさん mailto:sage [2008/03/11(火) 19:27:58 ID:???] 普通にできる
25 名前:nobodyさん mailto:sage [2008/03/12(水) 03:54:29 ID:???] パスでも間違ってんじゃね?
26 名前:nobodyさん mailto:sage [2008/03/13(木) 14:50:15 ID:???] 1.5RC3キタ
27 名前:nobodyさん mailto:sage [2008/03/13(木) 17:01:18 ID:???] hostsの設定が原因だったわ
28 名前:nobodyさん mailto:sage [2008/03/13(木) 18:25:33 ID:???] ACLって基本的にコントローラ単位でかけるもの? 対象が違うアクション(管理者向けの編集機能やユーザ向けの閲覧機能)が混在してるコントローラ は別コントローラとして分けたほうがいいんだろうか
29 名前:nobodyさん mailto:sage [2008/03/18(火) 00:48:46 ID:???] Zend Framework 1.5 が出たね。
30 名前:nobodyさん mailto:sage [2008/03/18(火) 01:11:51 ID:???] 出やがったか ウチが検証と移行を検討できるのはいつになることやら。。
31 名前:nobodyさん mailto:sage [2008/03/18(火) 01:24:23 ID:???] 1.5になってどれだけ使える感じなんだろう
32 名前:nobodyさん mailto:sage [2008/03/18(火) 01:25:03 ID:???] ドキュメントがああああああああああ 全部英語おおおおおおおおおおおおお 書き換わってるうううううううううう m-takagi・・・がんばって・・・ください・・・応援してます・・・
33 名前:nobodyさん mailto:sage [2008/03/18(火) 01:52:51 ID:???] ロケールファイルがぶっ壊れたのかなw 多分サイトリニューアル時の作業ミスだろうね。
34 名前:nobodyさん mailto:sage [2008/03/18(火) 23:01:29 ID:???] 日本語マニュアル回復した
35 名前:nobodyさん mailto:sage [2008/03/25(火) 01:22:11 ID:???] 1.5入れたらキャメルケースのアクション名が実行できなくなったんだけど仕様なの? [controller]/fooBar/ってリクエストのとき 以前はfooBarActionメソッドが呼ばれてたんだけど、foobarActionメソッドじゃないと呼んでくれなくなった。
36 名前:nobodyさん [2008/03/25(火) 01:57:20 ID:gUsYdsCk] >>35 その辺は仕様変更された。 よく確認した上で、実装しる。
37 名前:nobodyさん mailto:sage [2008/03/25(火) 02:09:06 ID:???] しょっちゅう仕様変更するフレームワークって何なの
38 名前:nobodyさん mailto:sage [2008/03/25(火) 02:14:12 ID:???] >>37 ZF
39 名前:nobodyさん mailto:sage [2008/03/25(火) 03:36:46 ID:???] >>36 ごめん、悪いけどその辺りの話ってドキュメントのどこに書いてある? テンプレートがハイフン区切りになったのは知ってたんだが、今回のは初耳で、 framework.zend.com/manual/ja/zend.controller.html framework.zend.com/manual/ja/zend.controller.action.html を見ても書いていなくて困ったんだ。
40 名前:nobodyさん [2008/03/25(火) 04:20:41 ID:gUsYdsCk] >>39 この辺が参考になるんじゃない? framework.zend.com/manual/ja/zend.controller.migration.html
41 名前:nobodyさん mailto:sage [2008/03/25(火) 21:28:57 ID:???] >>40 ありがとうございます。 しかし > しかし、PHP の関数名は大文字小文字を区別しないので、URL 自体を camelCasing 形式で書くこともできます。 > PHP では大文字小文字を細かく区別しないため、 これらはどちらも同じメソッドを実行することになります。 などは、ビュースクリプトはダッシュ区切りにすべきものの、アクションリクエストとアクションメソッド名はどちらでも構わないように読み取れる。 どうも腑に落ちないので、ファイルの中を検証してみた。 1.5からは最終的にZend/Controller/Action.php 498行目の if ($this->getInvokeArg('useCaseSensitiveActions') || in_array($action, get_class_methods($this))) { でメソッドが存在するか確認されるようになっているが、ここで渡される$actionは既に小文字に正規化されているため、 大文字メソッド名だとin_arrayがfalseになってしまう。 ここのif文は if ($this->getInvokeArg('useCaseSensitiveActions') || method_exists($this, $action)) { である方がドキュメントのニュアンスに即しているのでは。
42 名前:nobodyさん mailto:sage [2008/03/27(木) 15:12:28 ID:???] 1.5.1か
43 名前:nobodyさん mailto:sage [2008/03/27(木) 17:47:06 ID:???] changelogどこいった 何が修正されたんだ
44 名前:nobodyさん mailto: [2008/03/27(木) 21:47:41 ID:???] ここで見られるよ framework.zend.com/issues/secure/IssueNavigator.jspa?reset=true&&pid=10000&fixfor=10174&status=5&sorter/field=issuekey&sorter/order=DESC
45 名前:nobodyさん [2008/03/31(月) 01:42:25 ID:DgX3Qd/t] 今ZF初めていじってるんだけどZendControllerってどうなの? なんか使いにくい感じがするんだけど・・・ 独自のがいいのかね? それとも使ってれば慣れる? ZendController使ってる人 メリットデメリットあれば教えてぷりず!
46 名前:nobodyさん mailto:sage [2008/03/31(月) 01:53:02 ID:???] 使いにくいってどの辺が?
47 名前:nobodyさん mailto:sage [2008/03/31(月) 02:03:49 ID:???] >>46 URIとかアプリとしてセキュリティ的にいいのか?とか Directory構成とか考えるとなんだかなぁと 使ったことないからそんなもんだといわれればそれまで かもしれませんが ZF使ったオープンソースとか何かありませんかね?
48 名前:nobodyさん mailto:sage [2008/04/01(火) 00:44:20 ID:???] URI->アクションのルーティングとかは昨今のFWならどれでも大差ないと思うけどな あとRequestObject、ReponseObjectあたりが割と使いやすくて気に入ってる
49 名前:nobodyさん mailto:sage [2008/04/01(火) 01:06:58 ID:???] 特にZend_Controllerが使いにくいと考えた事ないなぁ。 とても自分でルーティング周りやDispatcher周りを自分で一から実装する気にはなれんw ま、オレオレFWにZend Frameworkをライブラリの一部として使うのはそれはそれでアリだと思うけど。
50 名前:nobodyさん mailto:sage [2008/04/01(火) 01:08:31 ID:???] Zend_Formの評判が気になる
51 名前:nobodyさん [2008/04/01(火) 14:48:39 ID:7JV3dDHX] Zend、Cake、SymfonyならZendが一番わかりやすいと思うよ
52 名前:nobodyさん mailto:sage [2008/04/01(火) 15:09:08 ID:???] わかりやすいっていうか 低機能なだけ・・
53 名前:nobodyさん mailto:sage [2008/04/05(土) 21:54:16 ID:???] zendの範囲で済む安仕事にはむしろ有り難い ケーキや管弦楽とは別の見方でモノ提供してる感じだね FW作るための土台みたいな感じ
54 名前:nobodyさん mailto:sage [2008/04/05(土) 22:59:41 ID:???] ZFで自社用FW作るとかならかなり良いと思う
55 名前:nobodyさん mailto:sage [2008/04/05(土) 23:17:50 ID:???] 管弦楽ってw symfonyって打ったほうが早いだろ
56 名前:nobodyさん mailto:sage [2008/04/06(日) 00:02:17 ID:???] >>ZFで社内カスタムFW 既に結構作られてそう。
57 名前:nobodyさん mailto:sage [2008/04/08(火) 13:18:35 ID:???] >>50 Zend_Form 使ってるけど、速度的に重い気がする。 だから Zend_Cache でキャッシュしてる。
58 名前:nobodyさん mailto:sage [2008/04/11(金) 21:49:28 ID:???] ZFでsmarty使う方法がいまいちわかりません。 検索してもサイトによって書いてる事がばらばらだったりで。 ZFにあるinterfaceから継承したsmarty用クラスは作成しました。 ここからなにをすればいいんでしょう? $opt = array( 'templete_dir' => '../application/views/scripts/index', 'compile_dir' => '../../var/templates_c' ); $smarty = new Common_View_Smarty(null, $opt); $smarty->assign("books", "テスト"); $smarty->render("index.tpl"); これがアクション内の記述なんですが、何か変なところはあるでしょうか? やったことは、 ・PHP.iniにsmartyのincludeパスを通す。 ・ttp://wadslab.net/2008/03/zend_view_smarty/ を参考にZend_View_Interfaceを実装したCommon_View_Smartyを作成 ・index.phpの中身は Zend_Session::start(); Zend_Controller_Front::getInstance()->setParam('noViewRenderer',true); Zend_Controller_Front::run('../application/controllers'); これだけ でIndexController.phpの中のindexActionに↑の奴を書いています。 エラーがでるでもなく、真っ白な何もない画面が表示されてしまいます。
59 名前:nobodyさん mailto:sage [2008/04/11(金) 22:56:44 ID:???] エラーが出ないならApacheやIISのログ見ればいいじゃない
60 名前:nobodyさん mailto:sage [2008/04/11(金) 23:16:02 ID:???] apacheのログも見てみましたが、それらしいものが全く見あたりません。 画面に何も表示されないので、まずテンプレートファイル自体読み込めてないと思うんですが $opt = array( 'templete_dir' => '../application/views/scripts/index', 'compile_dir' => '../../var/templates_c' ); $smarty = new Common_View_Smarty(null, $opt); $smarty->assign("books", "テスト"); $smarty->render("index.tpl"); この下に echo 'てすと' と書くと、てすとだけ表示されます。 なのでこのアクションは呼び出されているけど、上の方の処理が意味をなしてない?ようですが どこで間違ってるのかが突き止められない状態です。 せめてphpのエラーメッセージがでればまだおいかけられるんですが、一見エラーがないように素通りするので・・・
61 名前:nobodyさん mailto:sage [2008/04/11(金) 23:42:39 ID:???] ZFでSmartyを使用するには ViewRendererに登録してZend_Viewを置き換える方法と Zend_Viewを無効にしてアクション内でSmartyのrenderメソッドを呼び出す方法の2通りがある。 俺は前者でやっているが、後者でやるならマニュアルの42.3.2.2.にそのまんまの方法が載っているからそれ参考にすればおk。 そのサイトの怪しげな方法を参考にする必要は無い。 強いていうならそれはテンプレートディレクトリが正しく指定されてないと思われ。
62 名前:nobodyさん mailto:sage [2008/04/12(土) 00:11:46 ID:???] ttp://framework.zend.com/manual/ja/zend.view.scripts.html#zend.view.scripts.templates.interface マニュアルのはこれですよね? 一番最初はこれを見てやってたんですが、結局できず色々検索した次第です。 前述しましたが、interfaceを使ってsmarty用の,このマニュアルで言うところのZend_View_Smartyは作成しています。 このマニュアルで言うと、後は $view = new Zend_View_Smarty(); $view->setScriptPath('/path/to/templates'); $view->book = 'Zend PHP 5 Certification Study Guide'; $view->author = 'Davey Shafik and Ben Ramsey' $rendered = $view->render('bookinfo.tpl'); これすればいいだけなんですよね?(テンプレートファイルの配置は終わってるとして) これだとテンプレートファイルのパスは指定していますが、templates_cのパスは指定してませんよね。 なしでもいけるんでしょうか? このマニュアルのインターフェースを継承したsmarty用のクラスは作成して マニュアル通り、アクション部分に↑の5行ほどのプログラムを書き、テンプレートファイルも適宜設置済み。 で実行してもやはり真っ白なんですが、何かが足りないんでしょうか。 テンプレートディレクトリが間違ってるかもしれないと、何十通りか考えられる全てパスは試してみましたが、やはり無理でした。
63 名前:nobodyさん mailto:sage [2008/04/12(土) 00:33:44 ID:???] display_errors = On
64 名前:nobodyさん mailto:sage [2008/04/12(土) 00:40:04 ID:???] display_errors = On は設定済みです。 なのにエラーが出ない状態です。
65 名前:nobodyさん mailto:sage [2008/04/12(土) 00:45:03 ID:???] header('hogehoge'); みたいなところがおかしいと真っ白になるよね
66 名前:nobodyさん mailto:sage [2008/04/12(土) 01:15:36 ID:???] 通常のZend_Viewは使えてんの?
67 名前:nobodyさん mailto:sage [2008/04/12(土) 01:17:28 ID:???] オフィシャルのView_Smartyのrender()はsmartyのfetchをコールしてるだけだから、表示はしてくれない。 ViewRendererに登録しないでやるんだったら、自分でZend_Controller_Response_HttpのsetBody()に登録せんと。 ・コントローラ $this->_view = new Zend_View_Smarty(); $this->_view->setScriptPath('/path/to/templates'); $this->_view->book = 'Zend PHP 5 Certification Study Guide'; $this->_view->author = 'Davey Shafik and Ben Ramsey' ・コントローラのpostDispatch()にこんな感じで書く。 $rendered = $view->render('bookinfo.tpl'); $this->getResponse() ->setBody($this->view->render($rendered)); こんな感じでどう?
68 名前:nobodyさん mailto:sage [2008/04/12(土) 01:20:50 ID:???] 間違った。。。 $rendered = $view->render('bookinfo.tpl'); ↓ $rendered = $this->_view->render('bookinfo.tpl');
69 名前:nobodyさん mailto:sage [2008/04/12(土) 01:27:39 ID:???] そういえばecho $this->view->render('hoge.tpl')じゃなかったか
70 名前:nobodyさん [2008/04/12(土) 02:17:04 ID:vLVKIeUG] こうするとなにかエラーがあったときにわかりやすいよ(開発中のみ)。 //Zend_Controller_Front::run('../application/controllers'); $front = Zend_Controller_Front::getInstance(); $front->addControllerDirectory('../application/controllers'); $front->throwExceptions(true); try { $front->dispatch(); } catch(Exception $e) { echo nl2br($e->__toString()); }
71 名前:nobodyさん mailto:sage [2008/04/12(土) 09:16:17 ID:???] ErrorControllerの枠組みがあるじゃん
72 名前:nobodyさん mailto:sage [2008/04/12(土) 15:22:15 ID:???] >>66 はい、使えています。 >>67 参考に色々やってみたら、少し進んだような手応えがありました。 テンプレートの読み込みまではいったようです。 ただ、テンプレートの中に{$test}のようなsmartyタグを書くとエラーが出ます。 一切タグのない純粋htmlを読み込んでrenderするだけならできています。 テンプレートの中にタグを埋め込むと Fatal error: Smarty error: [in index.tpl line 6]: [plugin] modifier 'sanitize' is not implemented (core.load_plugins.php, line 118) in ライブラリのパス Smarty.class.php on line 1092 というエラーがでてしまいます。 恐らくこれを解決すれば表示されるのではないかと思いますが、エラーで検索してみてもこれといった解決法が見つかりませんでした。 in index.tpl line 6 この行に{$book_name}のようなタグがあります。
73 名前:nobodyさん mailto:sage [2008/04/12(土) 15:57:34 ID:???] > 参考に色々やってみたら 何をやったの? > sanitize カスタム関数のsanitizeファイルが無いんでしょ。
74 名前:nobodyさん mailto:sage [2008/04/12(土) 15:59:52 ID:???] すいません自己解決しました。 Zendのオフィシャルじゃなくて、少し改良したらしい他のサイトの継承クラス使ってたのが原因でした。 Zendオフィシャルのにしたらエラーは出なくなりましたが、表示はやはりでませんでした。 テンプレートには{$book_name} が埋め込んであります。 実行すると、コンパイル済みディレクトリにファイルが出来てそのタグを埋め込んだ部分が <?php echo $this->_tpl_vars['book_name']; ?> となっていました。 そのファイルではそうなっているんですが、Webでアクセスするとその部分が綺麗さっぱり消え去ってしまっています。 そのファイルのタグ該当部分の違いですが テンプレファイル:{$book_name} コンパイルファイル:<?php echo $this->_tpl_vars['book_name']; ?> Webでアクセスしたページのソース:なにもなし こんな状態です。
75 名前:nobodyさん mailto:sage [2008/04/13(日) 17:59:08 ID:???] 綺麗さっぱり消え去ってるんじゃなくて、ちゃんと実行されてんだろう book_nameに値が入ってないんじゃね
76 名前:nobodyさん mailto:sage [2008/04/13(日) 19:58:27 ID:???] テンプレートに{debug}ってして、中身見てみたら? 多分>>75 が言うように値入ってないと思うけど。
77 名前:nobodyさん mailto:sage [2008/04/22(火) 23:30:49 ID:???] ZFわかんなくて、CakeやってからZFに手出したら すげーZF好きになった。 ZFの方が記述が納得しやすいと思う。
78 名前:nobodyさん mailto:sage [2008/04/23(水) 00:19:31 ID:???] 例えばどんなとこよ?
79 名前:nobodyさん mailto:sage [2008/04/23(水) 00:22:18 ID:???] ZFがいいんじゃなくてCakeが腐ってるだけだろ 特にとんがった工夫も特徴もない標準的な実装がZF
80 名前:nobodyさん mailto:sage [2008/04/23(水) 11:57:54 ID:???] pearからのいいとこどりだしね
81 名前:nobodyさん mailto:sage [2008/04/23(水) 20:59:08 ID:???] そのうち、PHPにビルトインされるだろう。 と思ってたら本当にやりやがった。 マジかよw な事になると思うよ。 Zendはいつもそうだもの。
82 名前:nobodyさん mailto:sage [2008/04/23(水) 21:23:45 ID:???] と思ってたら本当にやりやがった。 マジかよw
83 名前:nobodyさん [2008/04/26(土) 02:06:01 ID:5isAEf4O] Zend Frameworkでセッション使ったら、画面が真っ白になりました。 なんででしょう?
84 名前:nobodyさん mailto:sage [2008/04/26(土) 02:15:12 ID:???] まだFW使うレベルじゃないと思われ
85 名前:nobodyさん mailto:sage [2008/04/26(土) 03:22:30 ID:???] 頓知クイズの類じゃないのか。
86 名前:nobodyさん [2008/04/26(土) 03:46:35 ID:faNVTaZi] new Zend_Date(); とすると、Zend_Date_Exceptionが1018行目から飛んできます。 第一引数に以下のような配列を渡すと正常にインスタンスが生成できます。 (※定数START_TMEの中身はtime()の戻り値です) $dateArr = array( 'year' => date("Y", START_TIME), 'month' => date("m", START_TIME), 'day' => date("d", START_TIME), 'hour' => date("H", START_TIME), 'minutes' => date("i", START_TIME), 'second' => date("s", START_TIME)); Zend_Dateの199行目の以下のメソッドの戻り値がタイムスタンプでるので、 その後の処理で例外が飛んでいるのは何となく分かりました。 (以下の後にコールされるsetTimeZone()の中で、timezone_open($zone)で$zoneがintのタイムスタンプなのでこけているようです。) $zone = $this->getTimezoneFromString($date); リファレンスによると、引数なしでコールした場合は、 勝手に'now'なインスタンスが生成されるようなのですが、 同じような現象が起こった方はいらっしゃいますでしょうか。。 Zend_Dateのバージョン記述は以下です。 @version $Id: Date.php 8943 2008-03-20 21:43:37Z thomas $ これって既知のバグなのでしょうか。 それともこちらの何がしかの設定の問題なのでしょうか。。 事前にdate_default_timezone_set('Asia/Tokyo');は行っています。
87 名前:nobodyさん mailto:sage [2008/04/26(土) 04:05:06 ID:???] 再現するコード出してみてくれ
88 名前:86 mailto:sage [2008/04/26(土) 04:41:19 ID:???] >>87 こんなです。 <?php define('START_TIME', time()); define('START_DATE', date("Y/m/d H:i:s", START_TIME)); define('APP_ROOT_DIR', dirname(dirname(dirname(__FILE__)))); define('DIR_SEP', DIRECTORY_SEPARATOR); define('APP_LIB_DIR', APP_ROOT_DIR . DIR_SEP . 'library'); error_reporting(E_ALL); set_include_path(APP_LIB_DIR . PATH_SEPARATOR . get_include_path()); date_default_timezone_set('Asia/Tokyo'); require_once 'Zend/Loader.php'; Zend_Loader::registerAutoload(); set_error_handler(array('My_ErrorHandler', 'userErrorHandler')); $date = new Zend_Date();
89 名前:86 mailto:sage [2008/04/26(土) 04:43:14 ID:???] >>88 今気がつきましたが、set_error_handlerの前でnew Zend_Date()だと、例外が飛んできません(正常にインスタンス生成できる)
90 名前:nobodyさん mailto:sage [2008/04/26(土) 04:48:52 ID:???] set_error_handlerの第二引数何それ?
91 名前:86 mailto:sage [2008/04/26(土) 04:53:47 ID:???] >>90 第一引数の配列の要素[0]がクラス名で、要素[1]がメソッド名です。 第二引数は指定していません。
92 名前:86 mailto:sage [2008/04/26(土) 05:24:31 ID:???] >>91 すみません。自己解決しました。 初めの説明がちょっとおかしかったりしてるので補足します。 Zend_DateObjectの1016行目で、(ここ最初にちゃんといえてなかったです) if (!@timezone_open($zone)) { となっていますが、このZend_Dateのコンストラクタの第一引数がnullだと、 上記の$zoneがintのタイムスタンプで入ってきます。 そうすると、timezone_open()はタイムゾーン文字列が渡されることを期待しているので、 E_WARNINGを発しますが、@で抑制されます。(通常は。) しかし、独自のエラーハンドラをすべてのエラーレベルに対して設定していて、 そのハンドラの中で@付きのエラー(ハンドラ内でのerror_reporting()の戻り値が0の場合)に対して適切な処理を行っていないと、 本来の@によるエラー抑制は無視され、処理が停止します。 このためnew Zend_Date(パラメータなし)がこけていました。 これは、Zend_Loaderの160行目でもおきます。。 (独自エラーハンドラのせいで@fopen()の@が効かないので) E_WARNINGに対しても独自のエラーハンドラを適用している場合は、ZFでは色々と気をつけないといけないみたいです。 以上、お騒がせしました。
93 名前:nobodyさん mailto:sage [2008/04/26(土) 13:15:49 ID:???] 自前のエラーハンドラ設定するならハンドラ側で error_reportingのチェックは必須 ZFとかに限ったことじゃないぜ
94 名前:nobodyさん mailto: [2008/04/26(土) 21:29:22 ID:???] >>92 Zend_Loaderの160行目の fopenの@は いろいろな問題を引き起こしているわけだけれど、、 さまざまなモジュールとの絡み合っている問題が多くて、どうしたものか悩んでます framework.zend.com/issues/browse/ZF-2985
95 名前:92 mailto:sage [2008/04/27(日) 06:13:29 ID:???] >>94 これじゃだめなんですかね? 自分は↓みたいにしてます。(Zend_Loaderそのものを) // if (!$fh = @fopen($filename, 'r', true)) { // return false; // } // return true; add> clearstatcache(); add> add> if ( is_readable($filename) ) { add> return true; add> } add> $include_path = get_include_path(); add> $path_list = explode(PATH_SEPARATOR, $include_path); add> add> foreach ( $path_list as $path ) { add> $fullpath = $path . DIRECTORY_SEPARATOR . $filename; add> add> if ( is_readable($fullpath) ) { add> return true; add> break; add> } add> } add> return false;
96 名前:94 mailto: [2008/04/27(日) 16:07:42 ID:???] >>95 fopenはinclude_pathを考慮してファイル取得できるのに、file_existsはinclude_pathを考慮できないのがデメリットなのだそうです
97 名前:nobodyさん [2008/04/28(月) 10:22:32 ID:zm3zzhzx] マヌアルでプリント用のページ出力してくれ
98 名前:nobodyさん mailto:sage [2008/04/30(水) 13:59:47 ID:???] 数字で始まるActionって使えますか? FQDN/controller/01 Actionメソッドの定義の仕方がわからない・・・orz
99 名前:nobodyさん mailto:sage [2008/04/30(水) 14:48:12 ID:???] idという意味でもなくて単に数字のURLにしたいなら actionメソッド名は適当につけてroutingで変えればいい
100 名前:nobodyさん mailto:sage [2008/04/30(水) 17:55:35 ID:???] Zend_Db_Statement::fetch() の offset指定が動作しないのは仕様なのか・・・? アダプタはPdo_Pgsql。
101 名前:nobodyさん mailto:sage [2008/04/30(水) 18:12:00 ID:???] 中身見てみれば?