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

Zend Framework Part4

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/02/09(火) 22:21:24ID:???
公式
http://framework.zend.com/

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

翻訳状況
http://mikaelkael.dyndns.org/checker/language/details/lang/ja
http://framework.zend.com/wiki/display/ZFDEV/Japanese+(Nihongo)

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

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

前のスレッド Zend Framework Part3
http://pc11.2ch.net/test/read.cgi/php/1239320100/
0738nobodyさん2010/12/05(日) 02:33:40ID:???
>>736
先生!CookieにはセッションID以外いれ無いと思います!
07397342010/12/05(日) 06:34:05ID:???
>>735
見てみました。
でも超英語ですね。
全然理解できませんでした・・・

ともあれ情報ありがとう。
0740nobodyさん2010/12/06(月) 13:16:53ID:???
よお!!みんな!!
736だぜ!!

Zend_Authですべて解決した。
よい子はちゃんとドキュメントを読むように!!

以上だ


0741nobodyさん2010/12/07(火) 17:17:46ID:???
>>740
頼むからそんなんで解決とかやめてくれ…
フレームワークは楽をする為のものであって
原理知らずに出来ちゃう便利な道具じゃないんだよう
せめて、Zend_Authの挙動を理解してから使ってくれよ

>>738
最近は暗号化してCookieに全部放り込むのもありだな
ガラケー死ぬけど
0742nobodyさん2010/12/08(水) 10:39:51ID:???
741>>

って言うんだったらお前がさっさと教えてやれよ

0743nobodyさん2010/12/08(水) 11:19:43ID:???
そのアンカーのつけ方流行ってんの?
0744nobodyさん2010/12/08(水) 16:45:27ID:???
743>>
まあ落ち着け。
0745nobodyさん2010/12/08(水) 17:11:03ID:???
<744>
そういうレスは煽りって言うんだぜ低脳
0746nobodyさん2010/12/08(水) 21:32:11ID:???
745<<    (越えられない壁)    <<俺
0747nobodyさん2010/12/09(木) 12:13:32ID:Z4PxvFs5
Zend_AuthはIDorPassに値ないとエラーになるから使うのやめたわ
catchでエラー処理すんのもめんどくさい
0748nobodyさん2010/12/09(木) 15:20:40ID:???
>>747
最初は俺もZend_Auth継承したクラスつかったりしてたけど、
Zend_Authあんまり意味ないよね。
今は独立したクラスで実装してるわ。
0749nobodyさん2010/12/09(木) 21:35:22ID:???
Zend_AclもZend_Authも微妙だよな・・・汎用的故に、独自に拡張し辛い。
そういう箇所に限ってプロジェクト毎に処理ロジックが変わったりするし、
結局自作の認証/権限クラスを作るのがベストだと思った。
0750nobodyさん2010/12/11(土) 12:44:49ID:???
>>749
「そういうとこは自分で書いちゃいなよ!」ってのも
ZFの魅力じゃないか。
0751nobodyさん2010/12/15(水) 09:01:50ID:rTeq7LP8
Zendで作ってあるシステムのサンプルみたいなのってない?
できれば小中規模のもの
0752nobodyさん2010/12/15(水) 09:23:09ID:???
本買えば付いてると思う
0753nobodyさん2010/12/15(水) 16:16:05ID:???
でも自分で作るのならzfの意味無いw
0754nobodyさん2010/12/18(土) 13:33:22ID:???
CakePHPからZFに転向した者です。

クラス設計が素直で自然であり、メソッド等の名前が判りやすく、品質の高さを
感じました。

ZFを知り、CakePHPが糞だってことに気づきました。
あ〜早めに気づいてよかった!
0755nobodyさん2010/12/18(土) 15:52:16ID:???
でもCakePHPのほうが仕事あったりするよね
0756nobodyさん2010/12/19(日) 03:41:25ID:???
無いよ
0757nobodyさん2010/12/19(日) 10:03:56ID:???
特定のブローカーがFWの仕事押さえてるから回ってこないお( ^ω^)
0758nobodyさん2010/12/20(月) 10:28:03ID:???
ZFって基盤だけ使ってあとは自分で作成するのがベストだよな
0759nobodyさん2010/12/20(月) 19:04:35ID:BA8UBi3n
ZF バージョン1.10を使用しています。

http://localhost/Hoge/fuga/
ブラウザからアクセスをするとApacheのエラーログに
PHP Notice: Use of undefined constant nul - assumed 'nul' in (ZFをインストールしているディレクトリ)/Zend/Controller/Dispatcher/Standard.php on line 262
と出力されてしまいます。

当該箇所には
$controller = new $className($request, $this->getResponse(), $this->getParams());
と記述されているだけなので、'nul'というのがどこから来ているのか検討もつきませんでした。
$classNameにはHogeが入って来ていました。。。
Noticeが出る原因は何が考えられますか?

よろしくお願いします。
0760nobodyさん2010/12/20(月) 19:36:44ID:???
ZFの初学におすすめの本を教えてください。
(PHPは使えますがフレームワークは初めてです)

田舎なので立ち読みできず、AmazonのZF関係の
コメントなども少ないので・・・
0761nobodyさん2010/12/20(月) 20:05:05ID:???
>>760
http://framework.zend.com/manual/ja/
0762nobodyさん2010/12/20(月) 22:24:17ID:???
ZendのMVCのディレクトリ構造を使いつつ、コントローラープラグインを使ったり作ったりする方法を知りたいのですが、どこかに資料はないでしょうか?
公式のマニュアルを見たのですが、プラグインを有効にする方法などが載っていませんでした。
検索したところ、海外のブログでいくつか見つかるくらいで、正しい方法がわかりません。

一応自分の見つけた情報をまとめておきます。

http://framework.zend.com/manual/ja/zend.controller.plugins.html
公式のマニュアル、プラグインをどこに登録するのか等がわかりませんでした。
http://codezine.jp/article/detail/2341?p=3
MVCを使ってない例
http://doremi.s206.xrea.com/zend/etc/plugin.html
正常に動作しない例

http://www.waysoflife.be/general/zend-front-controller-plugin-redirect-after-login-2/
プラグインをapplication.iniに書いて使う方法
http://blog.ekini.net/2009/06/04/registering-your-custom-plugins-in-zend-framework-18/
http://spokefire.co.uk/blog/2010/4/how-to-create-a-zend-controller-plugin
プラグインをbootstrapに書いて使う方法

application.iniに書く方法とbootstrapに書く方法は一応正常に動作しますが、
公式のマニュアルとはまったく違う方法でプラグインを読み込んでるので、これが本来の正しい方法なのかわかりません。
よろしくお願いします。
0763nobodyさん2010/12/20(月) 22:48:41ID:???
別に好きな場所に置いてnewしてregisterPluginで登録すればおk
0764nobodyさん2010/12/20(月) 23:07:07ID:???
>>763
newを書くファイルって何が相応しいんでしょうか?
あとZend_Controller_Front::getInstanceを書く場所もわかりません。
0765nobodyさん2010/12/20(月) 23:34:09ID:???
>>764
別に好きなファイルでいいのでは?
bootstrap.phpでもいいしindex.phpでもいい
0766nobodyさん2010/12/20(月) 23:39:02ID:???
あと試してないけどController内でもできるんじゃないかな
0767nobodyさん2010/12/21(火) 11:55:55ID:???
ルールもそれほどなく、本当に自由に実装出来るのがZFの良いところ。
実装次第でパフォーマンスや効率も変わってくるだろうし。

ただ、何も考えずルールに則って作りたい場合にはどうしても不向きだね。
あと使う人によって実装が異なってくるから、ルール作らず複数人で開発してしまうとごちゃごちゃする
(ZFに限った話じゃないけど)
0768nobodyさん2010/12/21(火) 23:26:15ID:???
ZFに限った話じゃないならZF関係ないじゃん
0769nobodyさん2010/12/22(水) 00:16:15ID:???
SymfonyやCakeは良くも悪くもガチガチだろ
0770nobodyさん2010/12/22(水) 10:31:49ID:???
Zend_Db_Tableってテーブルごとに作成しますよね。
(TemplateMethodに法った場合)
その場合ってmodel扱いでいいんですかね

class UserTable extends Zend_Db_Table
{
   protected $_tableName = "user";
}
0771nobodyさん2010/12/22(水) 23:20:20ID:???
えっ
0772nobodyさん2010/12/23(木) 15:14:15ID:8j0z9BIK
Zend_Formでフォームを作っているのですが、デフォルトではform要素の中にdl要素が入り、その中にコントロールはdd要素、ラベルはdt要素で挿入されると思いますが、dtあるいはdd要素の中にspan要素を挿入したいです。

public function indexAction(){
$form =new Zend_Form;

$form->clearDecorators();
$form->addDecorator( 'FormElements' )
->addDecorator( 'HtmlTag', array( 'tag'=>'dl', 'id'=>'controlPane' ) )
->addDecorator( 'Form' );
$form->setMethod('post')->setAction('/regist/add');
$form->setAttrib('id', 'registForm');

$form->setElementDecorators( array( 'ViewHelper', 'Label', array( 'HtmlTag', array( 'tag' => 'dt' ) ) ) );

$counroty =new Zend_Form_Element_Select('country');
$counroty->setLabel('言語');
$counroty->setDescription('<p>test</p>');
$counroty->addDecorator('Label', array('tag'=>'dt', 'class' => 'controlTitle' ) );
$form->addElement( $counroty );

$this->view->assign( 'form', $form );
}
今はこうなっています。
$counroty->setDescription('<p>test</p>');
で所用を達成できるかと思ったらうまくいきませんでした。
どうすればいいでしょうか?

0773nobodyさん2010/12/23(木) 16:15:08ID:???
>>772

$decorator->setOption('escape', false);
0774nobodyさん2010/12/23(木) 16:27:38ID:8j0z9BIK
>>773
お返事ありがとうございます。
出かけないといけなくなりました。
後ほど正しく動作するコードが書けたら報告いたします。


0775nobodyさん2010/12/24(金) 15:05:03ID:qkiZtUnD
ZendFrameworkは公開フォルダ内(例えば/htdocs/zf)にindex.phpとrewriteを有効にするために、
.htaccessを設定する必要がありますが、ここで質問があります。

この場合セキュリティが心配なのですが、どのようにhttpd.confを設定すればいいのでしょうか?
自分は基本的に.htaccessを使いたくない為に<Directory />、<Directory "/usr/local/apache2/htdocs">内で、
AllowOverride None
を設定しているので、本やネットに載っていなかった為に自分で勝手に
<Directory "/usr/local/apache2/htdocs/zf">
Options -Indexes -FollowSymLinks +SymLinksIfOwnerMatch
AllowOverride all
Order allow,deny
Allow from all
</Directory>
と、ZFを使用するには設定せざるを得ませんでした。
ZFがapplicationディレクトリ以下をどのように使用するのかを詳しく分からない為にAllowOverride allにしましたが、
これではAllowOverride all等セキュリティに不安が残るような気がします。

現に、公開フォルダ外に置いたはずの/application/ディレクトリ内のファイルのパスの指定の仕方でさえも(自分には何故作用するのか仕組みが分かりませんが)rewriteエンジンが作動しているようで、offにするとZFが働かずエラーになります。
つまり公開フォルダ外の/application/ディレクトリにも.htaccessが作用しているとなるとセキュリティ上一体どう設定すればいいのか分かりません。
皆さんはどのようにして設定されているのでしょうか?
また、ZF使用時のApache関連の設定方法を詳しく説明しているサイト等ありませんでしょうか?

SymLinksIfOwnerMatchを設定しているのは、
[error] [client 127.0.0.1] Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden: /usr/local/apache2/htdocs/zf/controller/request
等と出たために、FollowSymLinksは絶対に指定したく無かったために加えました。
0776nobodyさん2010/12/24(金) 15:31:58ID:???
ちがうちがう そうじゃ そうじゃない
0777nobodyさん2010/12/24(金) 15:37:03ID:???
>>775
3行にまとめてくれ
07787592010/12/24(金) 16:59:30ID:lpwJZIX8
今週ずっと原因を調べてたんですが、
結局わからずじまいでした。

どなたか何か思い当たる節があれば
アドバイス頂けないでしょうか。
0779nobodyさん2010/12/24(金) 17:26:11ID:???
100%再現する問題なら簡単に切り分けられると思うけど
0780nobodyさん2010/12/24(金) 18:05:10ID:???
>>778
再現できるソースをくれ
07817752010/12/25(土) 16:06:14ID:???
>>スリーセブン
rewriteエンジンが非公開ディレクトリまで及んでいるようですが、ZFで公開するディレクトリ、そして公開しないWebコンテンツのアプリケーションディレクトリの為の
httpd.confの設定はセキュリティの観点から皆様はどのように設定していますでしょうか?
パーミッションは一応設定していますが、上記に書いた自分の設定ではどうも不安なのですが、セキュリティ的に大丈夫なのでしょうか?
0782nobodyさん2010/12/25(土) 16:08:58ID:???
>>781
そういうことなら
http://framework.zend.com/manual/ja/project-structure.rewrite.html
0783nobodyさん2010/12/26(日) 17:27:17ID:A6fFNaAD
Zend_Formのデコレータについて教えてください。
デフォルトではフォームはdlタグで囲まれ、ラベルはdtタグで囲まれ、コントロールはddタグで囲まれると思いますが、ddタグの中にテキストボックスとセレクトボックスなど複数のコントロールをいれたいと思っています。
ラベルは一つです。

生年月日:[テキストボックス]年 [セレクトボックス]月 [セレクトボックス]日

このようなイメージです。

Zend_Form_Decorator_Abstract派生クラスを用意して、
private $_element2; /* 二つ目の要素 */
private $_element3; /* 三つ目の要素 */

public fuction setElement2( $element2 ){/* 割愛 */} /* 二つ目のフォーム要素をセットする */
public fuction setElement3( $element2 ){/* 割愛 */} /* 三つ目のフォーム要素をセットする */

public function buildInput(){
/* 割愛 コントロールを三つ並べてddタグで囲む */
}

このようなデコレーターを作るのかな・・・と思ってはいるのですが、、、
Zend_Form->addElement(XXX)する際、三つのコントロールを同時にaddする方法がわかりません。
どのようにすればいいでしょうか?

0784nobodyさん2010/12/31(金) 13:53:33ID:???
初心者です。

Bootstrap内に変数を宣言しておき、それを
コントローラのメソッド内から参照したいのですが、方法がわかりません。
どうしたら良いのでしょうか?
0785nobodyさん2010/12/31(金) 13:58:04ID:???
がいしゅつ
0786nobodyさん2011/01/02(日) 12:33:50ID:???
日本語マニュアルが必要になる度に毎回Web経由で見ていたが、
ダウンロードしてオフライン利用できる便利なもののがあったんですね!

http://framework.zend.com/docs/translations

APIマニュアルも、英語だけどオフライン用。
http://framework.zend.com/docs/api

知らなかった・・・
0787nobodyさん2011/01/02(日) 13:18:40ID:???
がいしゅつ
0788nobodyさん2011/01/02(日) 14:36:43ID:???
ネット上のリファレンスはアフォみたいに垂れ流されてしかもサイトが重くて邪魔なのばかりだもんな
検索しても同じリファレンスマニュアルの中途半端なコピーが山のように上位ヒットするし迷惑してる人多いと思う
0789nobodyさん2011/01/02(日) 18:42:46ID:???
公式サイトだけ指定して検索すりゃいいだろ
0790nobodyさん2011/01/08(土) 21:37:05ID:???
ZFムズいにゃ。
0791nobodyさん2011/01/08(土) 21:39:49ID:???
何なら簡単なんだ
0792nobodyさん2011/01/09(日) 09:34:24ID:???
>>791
ZFのモジュール設計は素晴しいと思う。
Cakeより100倍わかりやすい。
しかしQuickStartとAPIマニュアルだけでは、俺みたいな初学者には少々敷居が高いと感じました。

そこで、TIPS集みたいな情報があれば、大助かりです。
Webサイトの情報をあちこちかき集めれば自分なりのTIPS集ができるかもしれないけど、
初学者はかき集めた情報の正誤を判断することができないし、個々のTipsのドキュメント品質
を統一できないので、やはり本家本元のHPにTips情報があればいいなぁ・・・と思った次第です。

ぜいたくかな?
0793nobodyさん2011/01/09(日) 10:52:06ID:???
リファレンスが中途半端だし
なんと言っても説明が下手くそだよな、それが解りにくくしている一因になってる
0794nobodyさん2011/01/09(日) 11:59:13ID:???
>>792
ぜひ頼んだ
0795nobodyさん2011/01/10(月) 02:57:48ID:???
>>792
何がわからないのか、どこで躓いているのか、を明確にしておくれ。

FW自体に細かいルールが無く、
良くも悪くも自由に扱えるライブラリ群って感じなので、
自分のコーディング方法が正しいのか否かを判断するのは難しい気もする。

>>793
入門者向けに1から10まで説明が乗ってるリファレンスより遙かに情報をくみ取りやすいと思うが・・・
リファレンスでクラス概要を調べて、詳細はソースを読めばいいと思うよ。
0796nobodyさん2011/01/10(月) 04:20:02ID:vXLRlMCo
画面表示を目的としないアクションに直接アクセスされた場合に
任意のエラーを返したいと思っています。
例えばウィジェットのためのアクションで、
メインアクションにてActionStackに追加->
最終的に任意のレイアウトセグメントに表示するなどして使うといった目的のものです。

自分の場合、ほとんどは放っておいてもActionの実行時エラーとなるのですが、
preDispatchなどの段階で制御したいです。
直接アクセスとその他(ActionStackで実行された等)を判別するには
どのような方法が考えられるでしょうか。
0797sage2011/01/10(月) 12:43:35ID:???
>>792, 793
相変わらず「誰か」がやってくれるものだと思っている。
オープンソースなんだから足りないと思ったところはどんどん自分で参加して改善すればいい
0798nobodyさん2011/01/10(月) 13:14:55ID:???
Zend_Form_Element作ってViewにrenderしてるんですが、Errorをrenderすると<ul><li>で囲まれますが<p>に変更したいです。
addDecorator()はどのように書けばいいでしょうか?

07997922011/01/10(月) 22:06:24ID:???
>>797
オープンソースだから足りないものを要求するのではなく、
そのコミュニティに参加し貢献すべきというのは、仰るとおりです。

しかしZFを理解できず挫折する方々も多いと思う。
私は残念ながらTipsを作成するだけ習熟していないが、習熟していない
が故に、初心者向けのドキュメントの不備(?)を指摘することで
微々たる貢献をしたつもりです。
つまりTips集があれば、多くのZF初心者を救えるのではないか、と思った次第。

ZFのコミュニティは上記のようなスタンスも許されないものなのでしょうか>797
0800nobodyさん2011/01/10(月) 22:23:23ID:???
http://ayacnews2nd.com/archives/51685163.html
279 :名無しんぼ@お腹いっぱい :2010/09/04(土) 08:48:29 ID:n1Pb5Cs90
>>274
世の中に男は三種類しかおらぬ
形は何であれ勝負に挑む勇敢な者。その勝者と敗者…
そして一生勝負に出ない腰抜けだが…
三つ目は論外だ。語るに値せん


295 :名無しんぼ@お腹いっぱい :2010/09/05(日) 21:24:40 ID:H9tr5CHz0
>>279
何かに似てると思った
これ思い出した

「薩摩の教え・男の順序」
 一、何かに挑戦し、成功した人
 二、何かに挑戦し、失敗した人
 三、自分では挑戦していないが、挑戦する人を手助けした人
 四、何もしない人
 五、何もしないが、他人の批判だけをする人
0801nobodyさん2011/01/10(月) 23:46:42ID:???
>>799
>ZFのコミュニティは上記のようなスタンスも許されないものなのでしょうか

ZFに限らず、大抵の技術系コミュニティに言える事だけど、
何が解らなくて、何が足りないと思うのかを具体的に示さない限り、
学ぶ気も無い教えて君と認識されてスルーされるのがオチだよ。

単に「難しい」「理解し辛い」ってだけなら、基礎知識が足りてないだけだろうから、
PHP、プログラムの基礎、デザインパターンあたりのから学ぶべきだろうね。

余談だけど俺の周りにはそのタイプが多い、
基礎が出来てないけどFW導入すれば開発楽になるんでしょ?って人。
0802nobodyさん2011/01/10(月) 23:58:43ID:???
>>800
ちょww
コピペしただけじゃお前5番じゃないかよってゆう・・・。
まあその理屈でいったら俺も5か。
0803nobodyさん2011/01/11(火) 11:39:37ID:+Q2uG4Ip
Zend FrameworkのZend_Gdata_YouTubeを使って、Youtubeに動画をアップロードしました。
アップロード後、http://www.youtube.com/watch?v=XXXXXXのXXXXXXの部分を取得することは出来たのですが、
変換処理が完了しているかどうかを識別するのはどうすればいいのかを教えていただけませんか。

やってみたことは下記でexceptionに入った場合はエラーになるという方法です。
===============================================
$yt = new Zend_Gdata_YouTube();
try{
$videoEntry = $yt->getVideoEntry("XXXXXX");
}catch(Exception $e){
//動画が存在しない
}
===============================================
しかしこれでは変換中のものはExceptionに入りませんでした。
よろしくお願いします。
0804nobodyさん2011/01/11(火) 21:54:36ID:???
アップロードが完了したら変換処理が完了してるんじゃないの?
UPしてからしばらくかかるとかあんの?
どちらにせよXMLの中身に出てくるんじゃないのか
08057972011/01/11(火) 22:44:01ID:???
>>799
もし今まで誰も気づいていなくて、君が初めて指摘したことだったらもっと価値があったと思う。
でも、いままでマニュアルについてはいろいろな「指摘」がなされてきているから、残念なことにもう目新しい話じゃないんだ。
同じ要望を持つ人がどれだけいるかという投票にはなるけどね。

今の問題点はむしろ、「何が必要か」じゃなくて「誰がそれをやるか」だと思う。
なので、問題点の指摘にとどまらず、それを形にするところもリーダーシップを取って進めたらすばらしいことだと思う。
ちなみに zendframework.vla.jp こういうことをやっている人もいるのを見つけているので、ここにみんなで肉付けしていくのでもいいんじゃないかな
0806nobodyさん2011/01/17(月) 22:59:36ID:???
アレ?
いつからダウンロードするのにログイン登録しなきゃいけなくなった?
マジうざいんですけど・・・
0807nobodyさん2011/01/17(月) 23:02:06ID:???
別にいらないと思うけど
0808nobodyさん2011/01/17(月) 23:06:33ID:???
え?
http://www.zend.com/community/downloads
ここからZipを取ろうと思ったらログイン画面に飛ばされましたけど
どうにかしてログインしなくても済むのですか?
0809nobodyさん2011/01/17(月) 23:12:11ID:???
>>808
http://framework.zend.com/download/latest
ここから落とせるよ
0810nobodyさん2011/01/17(月) 23:14:44ID:???
>>809
ありがとうございます
0811nobodyさん2011/01/17(月) 23:31:02ID:???
Zend_Dbについて質問させてください。
皆さんはprepare()→execute()等でSQL文を書いていますか?
それともZend_Db_Tableクラスによるメソッドチェーンを利用していますでしょうか?

インピーダンスミスマッチの問題、動的な抽出条件、セキュアを意識しなくても良い等を考えればZend_Db_Tableクラスを利用した方がいいのかもしれませんが、
O/Rマッピングによるパフォーマンスの低下と、自分の思ったようなSQL文が書けるのか?と思うとどっちがいいのか分かりません。
確かに、一般的なSELECT文等であればZend_Db_Tableクラスの方がいいのかもしれませんが、複雑な連結とかした場合や、
また、パフォーマンスチューニングをZend_Db_Tableクラスで作った文で出来るのかな?と思うと普通にSQL文を書いた方がいいのかな、とか思ったりします。
ただ、記法の楽さやコードの変更時等は圧倒的にメソッドチェーンの方が楽そうですけど。

実際ZFで運用している方はどちらの記法で運用していますでしょうか?
0812nobodyさん2011/01/17(月) 23:32:06ID:???
他人が使ってればいいの?
0813nobodyさん2011/01/18(火) 00:42:18ID:???
>>812
いや、そういうわけではなく、使いにくそうな気がして、実運用上で使用されているのかな?よ思いまして
確かにif文やforeachから動的に入れ込み、色々と楽に出来るのは分かるのですが、SQLとしてはどうなのかなと
ま、商品管理からするとblogシステムとかではさほど難しいSQLもないので大丈夫かもしれませんが
0814nobodyさん2011/01/18(火) 00:45:13ID:???
僕はZend_Db(PDO)使ってます。
理由はSQL書くの好きだからです。
0815nobodyさん2011/01/18(火) 13:22:00ID:???
おれもZend_Db_Table使ってない
quickstartのGuestbookMapper見て使いづらそうだったんで。ちょっとかっこいいとは思うんだけどw

Zend_Dbを素で使うときはprepareじゃなくてqueryだったような。
条件によってSQLを変えたいときはZend_Db_Selectが便利ですよん
0816nobodyさん2011/01/18(火) 17:53:24ID:???
Zend_Db_Tableの最大の欠点はLIKE使いたいとき。
ゲロコードになる
0817 [―{}@{}@{}-] nobodyさん2011/01/19(水) 08:49:05ID:???
リファレンスとかカスケード使えないDBなんで出来るだけZend_Db_Tableに任せてる
が、複雑なセレクト、サマリ更新、式やサブクエリ含むアップデートは結局手でゴリゴリ書かないとむずかしい
queryとTable系でトランザクション違うのか混ぜるな危険を感じた事があった


今時リファレンスが無い()笑とか言われるかも知れないけど多分最新の安定バージョンなんだorz
0818nobodyさん2011/01/19(水) 09:21:24ID:???
住人の結論:Zend_Db_Tableは実運用では使えない

自分はSQLの書き方が分かりにくくなるので使っていません
後、純粋なSQL文に慣れているので

逆に、Zend_Db_Tableを運用上で使っている人に意見を聞いてみたいなぁ
自分には知らない便利な活用法なんかあるかもしれないからね
0819nobodyさん2011/01/19(水) 13:34:46ID:???
俺は複雑な検索や最適化が必要な箇所はSQLクエリ書いてる。
1つのテーブルに対する単純なCRUDにはZend_Db_Table使ってる。
select()等のメソッドチェーンは使っていないが便利だよ。

// テーブル定義のキャッシュ使う
Zend_Db_Table::setDefaultMetadataCache($zendCache);

// テーブルのO/Rマッパ作成
$table = new Zend_Db_Table(array(xxxxxx));

$row = $table->find($id)->current(); // キーで検索
$row = $table->createRow(); // 新規行の作成

// 行を更新して保存
$row->fieldName = "fieldValue";
$row->save();

// 行を削除
$row->delete();

こんな感じに書ける。
Zend_Db_Tableインスタンスを取得するショートカットメソッド定義しておけば、

$row = getUserTable()->find($userId)->current();
$row->fieldName = "xxxxxx";
$row->save();

と数行で書ける。

>>817
>queryとTable系でトランザクション違うのか混ぜるな危険を感じた事があった
トランザクションはDb_Adapter単位なので、意識してれば混在しても問題無いよ。
0820nobodyさん2011/01/19(水) 14:32:35ID:???
うはそうだったのか、使えるじゃんZend_Db_Table
せっかちな人はモデルからfetch結果(Zend_Db_Table_Rowset)を返してそのままviewに突っ込めばいいのか。

quickstartのこの実装はいったい何だったんだw 生真面目?
DB → Application_Model_DbTable_Guestbook → Application_Model_GuestbookMapper → Application_Model_Guestbook → view
0821nobodyさん2011/01/20(木) 02:54:37ID:???
>>820
複雑なSQLの入ったコードをDBTABLEに書くのが気持ち悪いから
生真面目実装してます
0822nobodyさん2011/01/21(金) 13:54:46ID:???
いやいや生真面目なのはそこじゃなくて。
Zend_Db_Tableを利用してるのにもかかわらず、さらに自前でMapper書いてるというとこでしょ。
0823nobodyさん2011/01/21(金) 14:41:21ID:???
>>822
DB ←Application_Model_Guestbook(Zend_Db_Tableを継承、もしくは内包) ← Controller

くらいが妥当だよな。
0824nobodyさん2011/01/21(金) 15:02:52ID:???
だよねえ
Skinny Controller Fat Model を表現したかったんだろうけどプロジェクトが小さすぎて
かえって違和感がでてしまったんじゃなかろうか。
0825nobodyさん2011/01/21(金) 17:36:26ID:???
そもそもさ、ZFの機能って皆色々と使ってる?
自分はフロントコントローラ、DB、その他って位しか主に使ってないんだけど・・・
例えばValidateなんかも何かめんどくさくて、自分で実装した方がいいような気がしたり
0826nobodyさん2011/01/21(金) 17:53:03ID:???
一人で開発するならそれでいいと思うけど
0827nobodyさん2011/01/22(土) 00:10:22ID:???
Controller、Session、Db、Cache、Http、あたりは重宝してる。
WEBサービス系のクラスもいざって時に役に立つ。

0828nobodyさん2011/01/22(土) 00:32:46ID:???
Zendは、Zend_Http_Clientをライブラリとして使ってるぐらいなんだけど、
アレはほんと便利。

Zend_Db_Tableが複雑なSQLを書くとき〜云々の件は、普通にView書いたりすれば
記述する方もある程度すっきりしたりするのではないの?
0829nobodyさん2011/01/22(土) 18:46:55ID:???
アクションコントローラー以外からPOST値を取得したいのですが、どのようにすればいいでしょうか?


0830nobodyさん2011/01/22(土) 18:48:09ID:???
$_POST
0831nobodyさん2011/01/22(土) 23:11:07ID:???
>>830
返事遅くなってすみません。
スーパーグローバルは使わない方向でいたきたいです。

0832nobodyさん2011/01/22(土) 23:12:35ID:???
アクションコントローラーだってスーパーグローバル変数を参照してると思いますが
0833nobodyさん2011/01/22(土) 23:28:16ID:???
>>832
すみません。
背景を説明します。

Zend_Formの派生クラスを作ってまして、その派生クラスをアクションクラスの中で使っています。
アクションクラス内では$this->getRequest()->getParams()で取得できますが、Zend_Formの派生クラスの内部でgetRequest()する方法はないでしょうか?
0834nobodyさん2011/01/22(土) 23:49:19ID:???
コントローラから渡すのじゃなんでだめなの?
0835nobodyさん2011/01/22(土) 23:53:51ID:???
>>834
$form =new MyZend_Form( $this->getRequest());
として、MyZend_Formのコンストラクタに渡すとエラーがでます。
0836nobodyさん2011/01/23(日) 00:02:50ID:???
エラーの原因つぶせば?
0837nobodyさん2011/01/23(日) 04:08:35ID:???
>>833
Zend_Controller_Front::getInstance()->getRequest()
じゃだめなの?
0838nobodyさん2011/01/23(日) 11:24:33ID:???
この質問者のグダグダした感じ、いつもの奴だろ
あだ名付けようぜ、今日からお前「グダ質」な
■ このスレッドは過去ログ倉庫に格納されています