トップページ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/
0171nobodyさん2010/03/15(月) 04:09:50ID:???
難でいちいちメールで配信してあげなきゃ成らないの。
rss見て自分でチェックしろよ。
0172nobodyさん2010/03/15(月) 10:00:30ID:???
>>169
>>170
レベル低いな相変わらず。
メール自体がすたれるだろ JK
おまいら新しいサービスを作るために開発やってんじゃねーん?

メール配信が金になるってのは、それだけ大量配信に無理があるからだぜ
それでいて、メルアド間違ったり、メルアド変わったり、盗聴されたり
途中で消えたり、ろくなことないからなメールは。
0173nobodyさん2010/03/15(月) 14:04:54ID:???
やっぱ何にも解ってないんだなお前は
0174nobodyさん2010/03/15(月) 14:08:25ID:???
お前さんは何をわかってるんだい?
で、実績は?
0175nobodyさん2010/03/15(月) 14:16:40ID:???
zendを取り入れた?らしいsymfony2.x系に期待
今はCodeIgniterを改造して使ってごまかしてる
0176nobodyさん2010/03/15(月) 14:34:17ID:S0jC/HjU
聞く場所ここで合ってるかわかないんだが、教えてほしいことが。
Zend_Formをsakuraレンサバで動かそうかと思ったんだけどうまく動作しないんだ。

入力画面は表示されるんだけど、入力をしてsubmitぽちっとすると

Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (error)' in
/home/ほげ/ZendFramework/library/Zend/Controller/Dispatcher/Standard.php:242 Stack trace:
#0 /home/ほげ/ZendFramework/library/Zend/Controller/Front.php(954):
Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#1 /home/ほげ/ZendFramework/library/Zend/Controller/Front.php(212):
Zend_Controller_Front->dispatch() #2 /home/ほげ/www/contact/index.php(12):
Zend_Controller_Front::run('../../phplib/co...') #3 {main}
thrown in /home/ほげ/ZendFramework/library/Zend/Controller/Dispatcher/Standard.php on line 242


パスが通ってないような雰囲気を感じ取ってはいる。
でも色々パスをいじったりhtaccessいじったりしたけど解決せずで助けて頂きたい。
テストサイトやローカルでは動いたんだけどさくらだと動かなくて。。

ちなみにindex.phpはこんな感じです。


<?php
require_once 'Zend/Controller/Front.php';
require_once 'Zend/Layout.php';

Zend_Layout::startMvc(array('layoutPath' => '../../phplib/contact/views/layouts/'));

Zend_Controller_Front::run('../../phplib/contact/controllers/');


あと他に状況を記載してほしい箇所があれば記載します。
0177nobodyさん2010/03/15(月) 14:42:55ID:???
HTMLソース見る。解決。
0178nobodyさん2010/03/15(月) 14:50:26ID:???
いや、重要なのは、エラーコントローラーがないっていう例外
エラーコントローラーを置かないならエラーハンドラープラグインを無効にするべき
0179nobodyさん2010/03/15(月) 15:33:02ID:S0jC/HjU
>>178
エラーハンドラープラグイン無効にしてみた。
画面真っ白になったからエラーログみてみたけど特にめぼしい情報はなかったー。

こんな風に無効にしたんだけど合ってるかな。

$front = Zend_Controller_Front::getInstance();
$front->setParam('noErrorHandler', true);
0180nobodyさん2010/03/15(月) 15:38:15ID:???
$front->throwExceptions(true);
はやってある?
0181nobodyさん2010/03/15(月) 19:22:03ID:S0jC/HjU
$front->throwExceptions(true); はやってなかった!

ので、付けたらエラー吐き出されたよ。
どうやらコントローラーの名前を正しく認識していないっぽい感じのエラーでした。
全然別のアクションにとんで全然別のビューを呼んでました。
なんでsakuraにした途端おかしくなったのか結局解明できなかったけれど
飛ぶ先を修正してフォームは動作するようになりました。
ありがとうございました!
0182nobodyさん2010/03/15(月) 20:45:57ID:???
工エエェェ(´д`)ェェエエ工
工エエェェ(´д`)ェェエエ工
工エエェェ(´д`)ェェエエ工
0183nobodyさん2010/03/16(火) 16:07:04ID:???
>>161
また使えないハローワールドベンチか
0184nobodyさん2010/03/16(火) 17:14:07ID:???
そういうことにしたいんだな
0185nobodyさん2010/03/16(火) 22:34:19ID:???
symphony 2 (reloaded) は zend fw 取り入れた rad で,速度も3倍って書いてあったよ。
0186nobodyさん2010/03/16(火) 23:16:01ID:???
そもそも3倍ってなんの3倍だよ
0187nobodyさん2010/03/16(火) 23:33:20ID:???
   , ノ)
  ノ)ノ,(ノi
  (    (ノし
┐) ∧,∧  ノ  いまだ!「通常の」…っと
..|( ( ....:::::::) (
 ̄⊂/ ̄ ̄7 ) ヽ lヽ,,lヽ
 (/ 川口 /ノ   (    ) やめて!
   ̄TT ̄    と、  ゙i
0188nobodyさん2010/03/16(火) 23:44:10ID:???
>>186
すまんね
It is up to 3 times faster than symfony 1.4 or Zend Framework 1.10
and consumes half the memory.
だそうな
http://symfony-reloaded.org/
0189nobodyさん2010/03/17(水) 01:48:37ID:???
シャア専用かw
0190nobodyさん2010/03/17(水) 03:17:14ID:0MVPdABS
localhost/controller/hogeaction
と言う感じにアクションにアクセスするとき、あるパラメータがGetもしくはPostで
送られてくることが必須の場合、パラメータの不備を確認するにはどうしたらいいですか?
単純に考えたら$this->getRequest()から値をとって、
if(!$param){
//リダイレクトとか警告表示
}
とするんでしょうが、いろんなコントローラのいろんなアクションで共通して使える
必須パラメータの不備確認処理がないか考えています。
(エラーコントローラは存在しないコントローラへのアクセスの制御だからちょっと違うんですよね?…)
0191nobodyさん2010/03/17(水) 03:36:30ID:???
コントローラの基底クラスにそういうの付けておくというのは?
0192nobodyさん2010/03/17(水) 05:52:30ID:???
必須パラメータがなかったらそのアクションに来てほしくないなら、
ルーターのルートで宣言する
アクションで使える共通機能が欲しいなら、アクションヘルパーを作る。
パラメータチェックぐらいなら、おれは Zend_Form
01931902010/03/17(水) 11:26:18ID:0MVPdABS
>>191,192
なるほど。意見ありがとうございます。

>必須パラメータがなかったらそのアクションに来てほしくないなら、ルーターのルートで宣言する

これが答えかなーって思ったんですが、これってルーティング設定ってことですよね?
それだと、そのアクションにくる度にチェックすることになるから…

管理画面で、登録済みの料理のレシピがたくさん並んでて、「編集するレシピ名をクリックして編集画面に移動」て
感じなんですよね。
localhost/kanri/recipi?henshu=100 でレシピ番号100の編集画面を表示って感じで、
Getメソッドで必須パラメータを渡すけど、この形式のURLは編集画面のトップ画面に限られてるんです。
(確認画面・修正画面・登録画面へは全部postとセッションでheishu=100も渡すので)
つまり、トップ以外の編集画面は/kanri/recipiの形になるので、これだと教えていただいた
ルーティングで固める上の方法は使えないですよね?
やっぱり編集画面のトップ画面でだけ、個別に必須パラメータ($_GETで)のチェック入れるしかないでしょうか?
ちょっと情報不足でした、すみません。
0194nobodyさん2010/03/17(水) 12:07:13ID:???
そのURL形式が必須なら、既存のルーティングで処理するのは難しそう

形式をこだわらなければ現在あるルーティングで目的は達成できるけど、
もし形式を変更できないなら、それにあったルートクラスを書く方が、
オーバーヘッドはないしクリーンだよ
0195nobodyさん2010/03/17(水) 12:19:44ID:???
質問させてください
マニュアル(http://framework.zend.com/manual/ja/zend.db.table.html)の、例27などに出てくる、select()の引数のZend_Db_Table::SELECT_WITH_FROM_PARTというのが分かりません
コレはいったい何なのでしょうか?
自分の持っている本にも載っていませんし、ネットで検索しても良く分かりませんでした
APIでもコンストラクタだという事しか出てこないように思います
いったいコレは何の為に使っているのか分かる方がいましたら教えていただけませんでしょうか?
0196nobodyさん2010/03/17(水) 12:57:18ID:???
>>195
Zend_Db_Tableのソース見た?
どこかで定数がdefineされてるはず
0197nobodyさん2010/03/17(水) 12:58:21ID:???
>>195
selectオブジェクトを作り、そのテーブル単独でfrom指定する
デフォルトでは、fromは自分で指定する。
0198nobodyさん2010/03/17(水) 14:41:38ID:???
symfony2.0はZendFrameworkベース
0199nobodyさん2010/03/17(水) 15:04:57ID:???
Zend Framework 2.0はsymfonyベース?
0200nobodyさん2010/03/17(水) 15:46:28ID:???
>>197
ありがとうございました
0201nobodyさん2010/03/17(水) 23:33:02ID:???
>>198
>>199
だったらそのままいけよw
0202nobodyさん2010/03/18(木) 07:52:53ID:???
たしかに、
Ruby on Railsって、なんで Rails on Rubyじゃないの?って思ってる
0203nobodyさん2010/03/18(木) 12:29:21ID:???
実行速度とか口ばっかで、ろくな実績がない
0204nobodyさん2010/03/18(木) 13:07:10ID:???
framework.zend.comが重いか重くないかで判断するのが簡単
0205nobodyさん2010/03/19(金) 06:54:15ID:???
大規模サイトに不向きだしねえ。
0206nobodyさん2010/03/19(金) 11:40:36ID:2j6+t1LQ
モジュール構成での質問です。
ZF1.9.7を利用しています。

端的に言うと、リクエスト時に全てのモジュールのブートストラップが呼ばれてしまいます。
出来れば、ルート直下と要求のあったモジュールの
ブートストラップだけ起動させたいのですが、
どう設定すればよろしいのでしょう?

ご教授願います。

application.iniで
resources.modules[] =
設定し、モジュール別にルーティングされている事も確認できてます。
0207nobodyさん2010/03/19(金) 12:33:49ID:???
http://weierophinney.net/matthew/archives/234-Module-Bootstraps-in-Zend-Framework-Dos-and-Donts.html

これ、その関係の話。
0208nobodyさん2010/03/19(金) 14:10:39ID:2j6+t1LQ
>>207
ありがとうございます。
翻訳して読みましたが、よく分かりません…
プラグインでモジュール確認するとか。

やりたいことは、全体のHPの一部のコンテンツにDBを利用した
システムがある。このコンテンツだけ分離したくてモジュールに
しようと考えました。レイアウトも別にしたかったし。
defaultモジュール:HP全体モジュール
appモジュール:dbを利用したコンテンツ

何か良い方法あるのでしょうか?
0209nobodyさん2010/03/19(金) 15:04:30ID:???
馬鹿にはzfは無理。
国産フレームワークにしとけ。

http://pc11.2ch.net/test/read.cgi/php/1253912143/
【PHP】PHPフレームワーク総合スレ14
http://pc11.2ch.net/test/read.cgi/php/1186096518/
【PHP】Ethna part.2【国産フレームワーク】
http://pc11.2ch.net/test/read.cgi/php/1172328149/
2ch有志がPHPフレームワークを作るスレ
0210nobodyさん2010/03/19(金) 15:07:32ID:iYK3Oj1q
>>208
そのブログで書いてあるのは、モジュールを検知して動作するプラグインを書けば?という話

モジュールのpluginsディレクトリにプラグインを置くとautoloadされる。
そのプラグインは現在のモジュール名とリクエストが一致してたら仕事をする。

モジュール別bootstrapでそのプラグインをフロントコントローラーに登録。
そんな感じ。
0211nobodyさん2010/03/19(金) 15:47:42ID:2j6+t1LQ
>>209
db部分は、MySQLによりDMLは全てプロシージャで作成したので
Cakeは断念しました。

>>210
解りやすい解説ありがとう。よく分かりました。
探してたら↓こんなんありまして、何とかやってみます。
http://blog.easytech.com.ar/2009/08/04/initializing-only-one-module-per-request-in-zend_framework/


0212nobodyさん2010/03/19(金) 16:02:16ID:iYK3Oj1q
>>211
いろいろあるみたいだよね。
手前みそだけど、こんなんでよかったらあるよ。改造のヒントにでもどうぞ。

・指定したモジュールだけにイベントを送るブローカー
http://github.com/noopable/Flower/blob/master/library/Flower/Controller/Plugin/Broker.php

・リソースのロードをLazyにできるモジュール別ブートストラップ
http://github.com/noopable/Flower/blob/master/library/Flower/Bootstrap/Module.php
0213nobodyさん2010/03/19(金) 17:30:31ID:2j6+t1LQ
>>212
下のリソースのロード制限は解りやすいですね。
ありがとうございます。
これは、各モジュールのブートストラップでinit〜作って
呼べばよいですよね?
0214nobodyさん2010/03/19(金) 18:00:26ID:???
>>213
えっと、すんません。解説がないんでアレですけど。。
わかりにくいようだったら、スルーしてもらっていいっす。恥ずかしいのでw

下の方は、リソースを必要とするまでinitしないためのものなので、
モデルとかサービスリソースを作ったときに、idleresourcesとしてresourcesと
同じように指定するとスタンバイになって、使われるときに初めて
getResourceでinitされます。

モジュール別に対応するには、上のやつをプラグインとして登録したうえで、
splObserverを実装したクラスならなんでも、モジュール名と一緒にプラグインに
attachすると、プラグインのイベントをupdateメソッドに送ってくれます。
なので、今回のケースだと、モジュール別BootstrapにsplObserverを実装して
updateメソッドで、遅延ロードしたいリソースをbootstrapするとOKなんですけど・・・
0215nobodyさん2010/03/20(土) 10:54:26ID:ZDcRVlf5
>>214
遅くなりました…
ご説明感謝します。

initしないためのものでしたかw
無知ですいません。

sqlObserverは使ったこと無いので勉強しないと理解できないです…
何となくですが、必要な時に初めてinit〜としてresourceを
生成ってことかなと。
0216nobodyさん2010/03/20(土) 18:42:46ID:4HvTXNoM
いえいえ、説明がへぼいので(ry
0217nobodyさん2010/03/20(土) 19:24:26ID:ZDcRVlf5
>>216
またお世話になると思うので宜しくお願いします。
0218nobodyさん2010/03/20(土) 23:21:56ID:???
Zend_Db_Table + Zend_Paginatorの組み合わせで使っています。

Zend_Db_Table_SelectにlimitをしてZend_Paginator無視されてしまうのですが何か良い方法はないでしょうか?

$select = $db->select()->limit(100);
Zend_Paginator::factory($select, 'DbTableSelect');
としてもlimit(100)が無視されてすべてのデータが入ってしまいます。
0219nobodyさん2010/03/23(火) 11:35:31ID:7nF+H1X7
zend_dbでクエリ実行してる限りは、sqlインジェクション対策は万全なんでしょうか?
自分は名前つきプレースホルダの形でqueryメソッドしているんですが…
今日みたモンベルのサイトがsqlインジェクションで大被害という話をみて気になっています
0220nobodyさん2010/03/24(水) 10:34:51ID:???
ZFってほかのFWよりは軽くて早いけれども、それでもZF使わないよりは遅いらしいですがそのサイトを回っていて体感できるほどでしょうか?
0221nobodyさん2010/03/24(水) 12:26:22ID:???
体感速度はクライアントのマシンやネットワーク環境にも依存する。
早いか遅いかは自分で確かめろ
0222nobodyさん2010/03/24(水) 14:01:12ID:???
作り方にも寄るしねえ。
zf使わなくても重いサイトはいくらでも作れる。pearで逐一sql発行してみたりとか。
0223nobodyさん2010/03/24(水) 23:53:42ID:???
10msかかる処理が50msになったとしたら、数値上は5倍も重くなった事になるよね。
でも体感は出来ない。そんな感じ。

0224nobodyさん2010/03/25(木) 10:25:51ID:???
質問させてください
やっぱある程度の規模の大きさに成長がみこまれるサイトというのはFWは使わない方がいいのでしょうか?
最初ZFなどのFWで構築すると後から変更などで大変になるのでしょうか?
0225nobodyさん2010/03/25(木) 10:40:05ID:???
> ある程度の規模の大きさに成長がみこまれる

トラフィックとかユーザー数とか複雑さとかデータ量とか、全部コミコミで話をしてるの?
多分、FWを使う使わないというより他に大事なことがたくさんあって、
それ抜きに結論は出ないと思う。
0226nobodyさん2010/03/25(木) 11:16:58ID:???
>>225
>トラフィックとかユーザー数とか複雑さとかデータ量とか、全部コミコミで話をしてるの?
はいそうです

>多分、FWを使う使わないというより他に大事なことがたくさんあって
デザイナーとかプログラマーとの兼ね合いとかそういう事でしょうか?

ZFはライブラリ的な一面もあるので他のFWよりは(他のFWは使触ったことはないのですが)柔軟性があるのではないかと勝手に思っているのですが、
例えばPHPじゃなくてJAVAでしっかりしたサーバサイドを作ろうとか、今のこのシステムではパフォーマンスの面や発展性の問題できついものがあるのでもうちょっと改良したい、
といった場合が出たときにやはりFWで構築していると変更に手間取ることがあるのかな、と思いまして

ショッピングサイトとか企業サイトとかはFWで構築しても特に問題はないかかと思いますが、(表現が悪いかもしれませんが)ユーザー志向の動的なコンテンツを提供する場合どうなのかなと思いまして
例えば掲示板とかblogとかを提供したり、フォトサイトとかのようにユーザーがファイルやテキストをアップロードしたりといったサイトの場合です
最初のうちはFWを使用しててもいいと思うのですが、拡張性を考えると自分たちで大変でしょうが最初からPHPを打ち込んでいく方がいいのかなと思いまして

説明が下手ですみません
0227nobodyさん2010/03/25(木) 11:22:48ID:???
コミコミでは結論は出ないと思います。
手書きかFWかというレイヤーの話とは違いますよ。
0228nobodyさん2010/03/25(木) 13:23:18ID:???
どの程度に成長するかの計画が無ければ判断出来ないしな。
基本作り直し覚悟で模索するしかないよ。経験無いみたいだし。
もしくは成長しなくて金が無駄に成っても最初から、javaで作っておくか。
自分たちでphp素でzfクラスのフレームワーク作れるほうが稀だと思う。
0229nobodyさん2010/03/25(木) 20:43:13ID:???
大規模になるならFW使ったほうがいいんじゃない?
0230nobodyさん2010/03/26(金) 01:07:35ID:0qaztAUz
Zend FrameworkってCGIモードでも動く?
0231nobodyさん2010/03/26(金) 02:20:12ID:???
zend server は apache + fcgi
0232nobodyさん2010/03/26(金) 02:39:10ID:???
mod_php使わないのか。遅そうだ。
0233nobodyさん2010/03/26(金) 04:07:42ID:O2gk3ied
この手の話の大規模って、機能規模なのかアクセス規模なのかがまず明確じゃないな

機能規模のことを言ってるなら、間違いなくコーディング規約なりFWなりで縛るのが吉
アクセス規模の事を言ってるなら、単純なRESTのレスポンスにまでFW使うのはどうかな〜と思い始めてる。
rubyでRoRとかpythonで mod_wsgi + 好みのFW とかなら話は別なんだろうけど
0234nobodyさん2010/03/26(金) 13:38:23ID:???
rorで大規模とかzfより面倒だよ。
0235nobodyさん2010/03/27(土) 18:57:25ID:???
ZendFuckってJavaでいうStrutsみたいなもんだよな。
それだけじゃ使い物にならないところが。
0236nobodyさん2010/03/28(日) 02:03:26ID:???
かといってjsp+jdbcでごりごり描いてるのも大変でしょ。
フレームワーク使って、htmlとpearごりごり描くの狩らぬけ出すだけでも導入効果有るよ。
0237nobodyさん2010/03/30(火) 20:43:09ID:???
Zend_Config_Iniの話ですが、数値でクオート無しの値を読み込んだ後に
Zend_config_Writer_Iniするとクオート付きになってしまいます。

foo = 1234を読み込んで書き込むと
foo = "1234"となる

対策法はありませんか?
0238nobodyさん2010/03/31(水) 06:55:05ID:???
文字列で統一の方がよくね?
0239nobodyさん2010/04/01(木) 08:41:41ID:???
馬鹿にはzfは無理。phpとpearの基本からやり直したほうが。

http://pc11.2ch.net/test/read.cgi/php/1268835461/
【PHP】下らねぇ質問はID出して書き込みやがれ 94
http://pc11.2ch.net/test/read.cgi/php/1158647441/
くだらない質問でもど偉そうに聞いていいスレ
http://pc11.2ch.net/test/read.cgi/php/1068190843/
親切な人が初心者にPHPの関数を使い方を教える
http://pc11.2ch.net/test/read.cgi/php/1257701535/
△▲ WebProg 初心者の質問 Part21 ▼▽
http://pc11.2ch.net/test/read.cgi/php/1167984858/
俺が初心者にPHPを伝授する
http://pc11.2ch.net/test/read.cgi/php/1172205352/
PHPでOOP
http://pc11.2ch.net/test/read.cgi/php/1253912143/
【PHP】PHPフレームワーク総合スレ14
http://pc11.2ch.net/test/read.cgi/php/1214323962/
[PHP-usersヲチ11]全部読むと裏技があるのでしょうか
http://pc11.2ch.net/test/read.cgi/php/1188789351/
【PHP】PEAR Part3
http://pc11.2ch.net/test/read.cgi/php/986146208/
PHPで作られたサイト
http://pc11.2ch.net/test/read.cgi/php/1152776176/
【勉強するのは】PHPとPerl【どっちが最初?】
http://pc11.2ch.net/test/read.cgi/php/1253091690/
php+mysql = オワタ
http://pc11.2ch.net/test/read.cgi/php/1018597325/
php5これでCGIはphp1色の時代へ
http://pc11.2ch.net/test/read.cgi/php/1213919075/
PHP関連の書籍 第6版
http://pc11.2ch.net/test/read.cgi/php/1169024172/
PHP相談室 1
0240nobodyさん2010/04/01(木) 23:02:16ID:???
zendを使って作成されたそれなりの規模のソースを配布しているところってありますでしょうか?
zendについているソースはすべて見ました。
daoやキャッシュなどをフルに利用した参考になるソースありましたら教えて欲しいです。
ディレクトリの構成やDBコネクション、エラー定義などを参考にしたいです。
0241nobodyさん2010/04/01(木) 23:35:40ID:???
>240
http://www.live-commerce.com/
0242nobodyさん2010/04/02(金) 00:37:50ID:???
>>240
お勧めは
storefront
http://www.ohloh.net/p/zfstorefront

TomatoCMS Omekaもなかなかよいよ。

live-commerceを見るのは最後にした方がよさげ。
0243nobodyさん2010/04/08(木) 18:48:06ID:hISebTnv

$query->where("column1 = ? and column2 = ?", array('abc', 'def'));
こんな感じでzend_db のwhere 関数で?(プレースホルダ)を複数使いたいんですが、うまくいきません。
プレースホルダを複数使うのってできないのでしょうか?
0244nobodyさん2010/04/08(木) 20:05:16ID:???
>>243
ソース嫁
0245nobodyさん2010/04/08(木) 20:21:47ID:hISebTnv
ソース読んでもわからんかった
教えてクレヨン
0246nobodyさん2010/04/08(木) 21:59:06ID:???
$query->where('column1 = ?', 'abc')
->where('column2 = ?', 'def');
0247nobodyさん2010/04/09(金) 10:10:00ID:TIvOx/xs
あすいません
column = 1 and (column2 = 2 or column3 = 3)
みたいな場合についてでした。
この場合orWhereを数珠つなぎすると思った通りにならんのです・・
プレースホルダ使わなければなんとかなるのですが。
0248nobodyさん2010/04/09(金) 10:31:31ID:???
orWhereとかあるけど、それでも無理?
0249nobodyさん2010/04/09(金) 10:43:22ID:???
あぁ、すまん、orWhereって書いてたね

> column = 1 and (column2 = 2 or column3 = 3)
これ、評価順を考えてみれば、フラットにできるから。
column2 = 2 or column3 = 3 and column = 1
でどうよ。
0250nobodyさん2010/04/09(金) 11:37:31ID:???
SQLでは優先順位が AND > OR と定められているはずでは?
0251nobodyさん2010/04/09(金) 11:43:38ID:???
最適化エンジン次第じゃない?
0252nobodyさん2010/04/09(金) 12:09:21ID:???
その最適化エンジンやばくないか
0253nobodyさん2010/04/09(金) 12:17:33ID:???
このスレではよくあること
0254nobodyさん2010/04/09(金) 13:20:02ID:???
>>243

実行時は名前付きパラメータで処理されるから、:paramnameとbindを使ってみて
0255nobodyさん2010/04/12(月) 01:13:05ID:b5cG05fs
Zend_Db_Tableを使用してinsertやupdateをする際に、
$dataで追加するデータを連想配列で指定すると思いますが、
できれば、のちのちの変更も考えて、addParam()などでデータを追加したいのですが、
それようのクラスってあるのでしょうか?
探したのですが見つからずでした。
DbTable_UsersなどとZend_Db_Tableの間に一つ自作のクラスを追加してやるしかないのでしょうか?
liveCommerceは連想配列のままでした。
うまいやりかたありましたら教えて欲しいです。
0256nobodyさん2010/04/12(月) 04:06:48ID:???
> できれば、のちのちの変更も考えて、addParam()などでデータを追加したいのですが、

そこをもう少し詳しく・・・
それだけじゃ何がしたいのかわからない。
0257nobodyさん2010/04/12(月) 13:30:57ID:HRyruJMr
ZendFW1.9 + smarty で開発してます。モジュール化について教えてください。
これまでモジュール化を考えずにサイトを作って来たんですが、管理画面以下のみをモジュール化
しようとして失敗しています。以下のエラーが出ます(ブラウザ画面は真っ白)
PHP Fatal error : Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message
'Invalid controller specified (error)' in /usr/lib/php/Zend/Controller/Dispatcher/Standard.php:241

●モジュール化の為に、フロントコントローラ(index.php)には以下を追記し、
$front->setControllerDirectory(APP.'/controllers');//この行は元からありました
$front->addControllerDirectory(APP.'/kanri/controllers', //この行を追記した

●applicationディレクトリは以下の通り。
application
 -controllers(ここに管理画面以外のコントローラ全てが入ってます)
 -models
 -smarty(この中にview用のファイルが入ってます。標準であるviewディレクトリは使ってません)
 -kanri(このディレクトリを新規にモジュール用に追加しました)
  -controllers
   -IndexController.php
  -models
  -views(現在はカラ)


続きます
02582572010/04/12(月) 13:36:32ID:HRyruJMr
つづきです
●/application/kanri/controllers/IndexController.phpは以下の通り。
require_once 'Zend/Controller/Action.php';
class Kanri_IndexController extends Zend_Controller_Action {
 public function indexAction() {
  echo "hoge";
 }
}
●ルーティング設定は
routes.kanri.route= "/kanri/*"
routes.kanri.defaults.module= "kanri"
routes.kanri.defaults.controller= "Index"
routes.kanri.defaults.action= "index"
routes.kanri.type= "Zend_Controller_Router_Route"

長くてすみません。どこが設定でおかしいんでしょうか?
ディスパッチのエラーが発生してるということは、ルーティングだったり
名前設定だったりの間違いか、ディレクトリ構造がおかしいかかと思いましたがわかりません。


また、kanri用のviewファイルも/application/smartyの中に入れて良いのでしょうか
その場合、どういう形で入れたら良いんでしょうか?
現在のindex.phpでのsmarty設定が
$render ->setViewBasePathSpec(APP.'/smarty')
->setViewScriptPathSpec(':module/:controller/:action.:suffix')
->setViewScriptPathNoControllerSpec(':action.:suffix')
->setViewSuffix('tpl');
なので、
/application/smarty/kanri/index/index.tpl、/application/smarty/kanri/kanrigamen1/index.tpl
という形で良いんでしょうか?
よろしくお願いします。
02592572010/04/12(月) 21:26:30ID:???
どうにか自己解決できました
スレ汚しすみませんでした
0260nobodyさん2010/04/14(水) 08:59:09ID:???
すみませんZend_Http_Cookieのマニュアル(http://framework.zend.com/manual/ja/zend.http.cookies.html)の「例4 クッキーがマッチするかどうかの確認」の部分の質問なのですが、

$cookie->match('https://sub.domain.example.com/somedir/otherdir/foo.php');
// これは true を返します。

この部分の意味が分かりません。
https://www.example.com/somedir/foo.phpがマッチするのは単純に分かるのですが、sub.domain.や/otherdir/の2つが何故マッチするのかと・・・。

「mixed $uri: Zend_Uri_Http オブジェクトで、 ドメインやパスのチェックに使用します。
オプションとして、 正しい形式の URL を文字列で渡すこともできます。
指定した URL のスキーム (HTTP あるいは HTTPS)、 ドメインおよびパスがすべて一致した場合にのみ、クッキーがマッチします。 」

という記述の「指定した URL のスキーム (HTTP あるいは HTTPS)、 ドメインおよびパスがすべて一致した場合にのみ」と反するような気がします。
単に基本的な事が分かっていないだけなのかもしれませんが、自分には考えても分かりませんでしたので教えて頂けたらと思います。
よろしく御願いいたします。

0261nobodyさん2010/04/16(金) 18:02:22ID:???
secureだからhttps://
.example.comだから*.example.com
/somedirだから/somedir*
0262nobodyさん2010/04/17(土) 20:24:51ID:T3UCpDKa
>>261 Thanksです
0263nobodyさん2010/04/21(水) 18:21:04ID:mfVJoQpI
quickstartとほぼ同じ構成なんですけど、
アクセスURLが /mだったらレイアウトをmobile.phtmlにするって
application.iniでは記述できませんよね?ディスパッチャを拡張するとか?

しょうがないので今はコントローラの中で
$this->view->layout()->setLayout('mobile');
とやってるんですが、そんなもんでしょうか?
02642632010/04/22(木) 13:23:51ID:???
細かいけど訂正。こうだった
$this->_helper->layout->setLayout('mobile');

注入したい場合はどうやらこんな感じ。ブートストラップにて
protected function _initLayout()
{
$this->bootstrap('FrontController');
$f = $this->getResource('FrontController');

$l = Zend_Layout::startMvc();
$l->setLayoutPath(APPLICATION_PATH."/layouts/scripts");
 :
$l->setLayout("mobile");
 :
return $l;
}
0265nobodyさん2010/04/22(木) 17:52:05ID:doAUeW+3
Service_Amazonを使いたいんですが問題が発生します。

if(!empty($params['key'])){
$associate_key = $this->_config->afferiate->_ASSOCIATE_KEY;
$query = new Zend_Service_Amazon($access_key, 'JP', $secret_key);
$results = $query->itemSearch(
array(
'SearchIndex' =>'Books',
'Keywords' =>'PHP',
'ResponseGroup' =>'Large'
)
);
}

上記のようにして、検索を実行した時に限ってdispachエラーが出るようなんです。
[Thu Apr 22 01:40:01 2010] [error] [client 192.168.0.8] PHP Fatal error:
Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message
'Invalid controller specified (error)' in /usr/lib/php/Zend/Controller/Dispatcher/Standard.php:241

$params['key']がカラで検索しないときは、同じ画面でもエラーしません。
どんな原因が考えられるでしょうか? バージョンは1.8.1です。
また、上のZend_Service_Amazon()の使い方は間違ってますか?
0266nobodyさん2010/04/22(木) 23:09:32ID:???
新しいバージョン使いなさい
1.10とか
0267nobodyさん2010/04/22(木) 23:55:56ID:doAUeW+3
>>266
どうもありがとうございます
バージョンが古いのが問題かと思って新しくしたんですが、まだエラーが出ます。
PHP Fatal error: Class 'DOMDocument' not found in /usr/lib/php/Zend/Service/Amazon.php on line 128
何が問題なんでしょうか。
調べたらzendfwよりphp自体の問題に思えて来たのでphpスレに移動します。
ありがとうございました
0268nobodyさん2010/04/23(金) 00:33:42ID:???
ggrks
http://www.google.co.jp/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=Class%20%27DOMDocument%27%20not%20found&num=50
0269nobodyさん2010/04/23(金) 00:37:54ID:???
>>268
どうもです。
しかし、そこに書いてあることやったんですけどエラー解消しないんですよね
php質問スレに詳細書いたので、気が向いたらお願いします。ありがとうございました
0270nobodyさん2010/04/23(金) 04:13:25ID:QeXW5bBg
すみません、zendFW1.10.3を利用してるんですが、Zend_Service_Amazonの使い方、以下で間違ってますか?

$query = new Zend_Service_Amazon($access_key, 'JP', $secret_key);
//$results = $query->itemLookup('B001DNF6V6');
$results = $query->itemSearch(
array(
'SearchIndex' =>'Music',
'Keywords' =>$params['key']
)
);

値が取得できず、以下の結果になります。(エラーは出力されません)
object(Zend_Service_Amazon_ResultSet)#295 (4) { ["_results:protected"]=> object(DOMNodeList)#307 (0) { }
["_dom:protected"]=> object(DOMDocument)#293 (0) { } ["_xpath:protected"]=> object(DOMXPath)#296 (0) { }
["_currentIndex:protected"]=> int(0) }

コメントアウトしている $results = $query->itemLookup('B001DNF6V6'); でなら目当ての商品情報を取得できるので
コンポーネントの設定や動作条件は満たしてるのではと思うんですが…
■ このスレッドは過去ログ倉庫に格納されています