5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

Zend Framework Part4

1 :nobodyさん:2010/02/09(火) 22:21:24 ID:???
公式
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/

2 :nobodyさん:2010/02/10(水) 01:40:17 ID:???
専門的な記述のめちゃくちゃ和訳wktk
容赦なく突っ込んでやるからケツ貸せよ。

3 :nobodyさん:2010/02/10(水) 09:21:33 ID:???
質問させて下さい
<?php
require_once 'Zend/Filter/Input.php';

$data = array( 'price' => '' );

$filters = array( '*' => 'StringTrim' );

$valids = array( 'price' => array(
Zend_Filter_Input::ALLOW_EMPTY => FALSE
//Zend_Filter_Input::ALLOW_EMPTY => TRUE,
//Zend_Filter_Input::PRESENCE => Zend_Filter_Input::PRESENCE_REQUIRED )
);

$options = array( Zend_Filter_Input::NOT_EMPTY_MESSAGE => '%field%は空文字列を許可しません。' );

$in = new Zend_Filter_Input($filters, $valids, $data, $options);
if($in->isValid()) {
print('検証に成功しました。<br />');
} else {
print_r($in->getInvalid()); //[A]
}
を実行すると、ブラウザには
Array ( [price] => Array ( [isEmpty] => priceは空文字列を許可しません。 ) ) 
と出ますが、 これを「priceは空文字列を許可しません。」、と表示させるにはどうすればいいのでしょうか?
[A]の部分を単純にprintやechoにしても「Array」、としかブラウザに表示されないものですから

4 :nobodyさん:2010/02/10(水) 09:35:15 ID:???
>>3
ネタ乙

5 :nobodyさん:2010/02/10(水) 09:37:20 ID:???
>>4
ごめんなさい、ネタじゃなくてマジで聞いています・・・すみません

6 :nobodyさん:2010/02/10(水) 09:51:06 ID:???
foreach($in->getInvalid() as $invalid) foreach($invalid as $message) echo $message . "<br />\n";

7 :nobodyさん:2010/02/10(水) 10:35:10 ID:???
>>6
ありがとうございました

8 :nobodyさん:2010/02/12(金) 22:56:41 ID:Rluma8O9
Zend_Db_Table::fetchAll()はありますが、
Zend_Db_Table::fetchOne()はなぜないのでしょうか?

9 :nobodyさん:2010/02/12(金) 23:14:04 ID:???
一人はみんなのために
みんなは一人のために

10 :nobodyさん:2010/02/12(金) 23:39:35 ID:???
fetchAll()に対するのはfetchRow()じゃないのか

11 :nobodyさん:2010/02/12(金) 23:42:53 ID:Rluma8O9
>>10
対の話ではないです。

Zend_Db::fetchOne()はありますが、
Zend_Db_Table::fetchOne()がなぜないのかなぁと。


12 :nobodyさん:2010/02/12(金) 23:45:14 ID:???
Zend_Db::fetchOne()
ってあるの?

13 :nobodyさん:2010/02/13(土) 00:55:50 ID:???
無いよ

14 :nobodyさん:2010/02/13(土) 00:56:54 ID:???
Zend_Db_Tableってそもそもテーブル単位のデータ取得なんだからOneがあったらおかしい
PKだけ入ってるテーブルって事になる

15 :nobodyさん:2010/02/13(土) 00:58:51 ID:vm0LKRH2
COUNT(*)での利用を想定していたのですが、無いようですね

16 :nobodyさん:2010/02/13(土) 07:00:36 ID:???
Adapterにあるね

17 :nobodyさん:2010/02/13(土) 13:05:28 ID:???
Zendやりたくて環境設定まで終えてググってHelloWorld表示まではできたんですが、
次にプログラマ向けリファレンスガイド見て覚えようと思い
まずZend_Controllerから見ていこうと思ったんですが、最初に最低限目を通して
おいた方がいいのはZend_何でしょうか?

18 :nobodyさん:2010/02/13(土) 13:53:45 ID:???
HelloWorldはいいとして、
ググる前にquickstartはおすすめ
http://framework.zend.com/manual/ja/learning.quickstart.html
http://framework.zend.com/manual/ja/learning.html

コンポーネント別では、Zend_Service_*がいいと思う

19 :nobodyさん:2010/02/13(土) 17:01:12 ID:vm0LKRH2
>>16
それで解決しました。

>>!4
Tableだって一つの返り値あります。


20 :nobodyさん:2010/02/13(土) 17:25:25 ID:???
普通にZend_Db使えばいいのでは

21 :nobodyさん:2010/02/13(土) 17:35:28 ID:vm0LKRH2
>>20
何でですか?
複数テーブルで運営してるので明らかに不便なんですけど。

22 :nobodyさん:2010/02/13(土) 17:38:13 ID:???
使い方解ってないんじゃね

23 :nobodyさん:2010/02/13(土) 21:05:02 ID:Vt3QKYJR
スゴい素人質問なんですが、
一つのサーバでzendFWを使う複数のサイトを作るとき(バーチャルドメインとかで)、
zendFWのパッケージ(?)はサイトの数分インストールしなくても良いのでしょうか?
FWのインストールは一度限りで、applicationディレクトリやルーティング、
テンプレートへのパス設定をそれぞれのサイトのフロントコントローラでやるだけで、
それぞれ別のサービス・ルールとして動いてくれるんでしょうか?

PHPだって2つも3つもインストールしないんだから一緒だろうとは思ったのですが
FWが初めてなので質問しました。すみませんが回答お願いします。

24 :nobodyさん:2010/02/13(土) 21:27:05 ID:???
>>23
application単位で管理すればおk
それでだいたいうまく行く

25 :nobodyさん:2010/02/13(土) 21:33:22 ID:???
Zend_Db_TableにOneないのってのは
PHPプログラマらしい質問だと思う
オブジェクト指向が解ってない

26 :nobodyさん:2010/02/13(土) 22:21:13 ID:???
質問者じゃないけど、このスレって質問があったときに適当に突っかかってくるよね。
OneがないならAdapterって返答スレばいいのに>>25みたくオブジェクト指向的には〜みたいに言いがかりつけて。
使いたいように使えっていうのがZFの発想だからどう使おうが自由。

>>25
オブジェクト指向的な説明お願いします。

27 :nobodyさん:2010/02/13(土) 22:28:01 ID:???
使いたいように使えっていうのがZFの発想

え?


28 :nobodyさん:2010/02/13(土) 22:29:37 ID:???
Zend_Db_TableでfetchOneはないんですかって質問なんだから
オブジェクト指向のデータアクセスでどのデータが帰ってくるか解らないOneなんて無いんだから無いんだよって話だろ
帰ってくるのはオブジェクトかオブジェクトのリストなんだから

29 :nobodyさん:2010/02/13(土) 22:45:51 ID:???
> ってくるのはオブジェクトかオブジェクトのリストなんだから
なぜ、そう言い切れるんだ?

Zend_Db_AdapterならfetchOneがあって、TableならfetchOneがない理由とは言えないよな。

テーブルゲートウエイパターンに忠実とかそういう話なら少しはわかるが、
オブジェクト指向のデータアクセス??そこんとこ詳しく教えてくれ。

30 :nobodyさん:2010/02/13(土) 22:47:34 ID:???
>>27
http://framework.zend.com/manual/1.10/ja/introduction.overview.html
>我々はこれを "use-at-will (使いたいように使ってくれ)" 方式と呼んでいます。

え?

31 :nobodyさん:2010/02/13(土) 22:55:51 ID:Vt3QKYJR
zend_Validaterを勉強しています。
バリデートクラスをnewで作るのって、検証対象の値ごとに作るしかないんでしょうか?
たとえば$val= new Zend_Vlidate_GreaterThanInt(n)を3つ<input type=text>の値に対して
それぞれやるとなると当然3つですよね?(制限値nが異なる場合)
3つならともかくフォーム全体で20個newするなんてことになるとすごく冗長というか
もっと要領のいいやり方はないのか気になってしまいます
みなさん、素直に大量にnewするようなセオリーに従ったつくりにしていますか?
何か効率化のアイディアがあったらアドバイスいただけると嬉しいです。よろしくお願いします。


>>24
ありがとうございました、自信がもてなかったので助かりました。

32 :31:2010/02/13(土) 22:57:13 ID:???
書き間違えました
>たとえば$val= new Zend_Vlidate_GreaterThanInt(n)
たとえば$val= new Zend_Vlidate_GreaterThan(n) でした

33 :nobodyさん:2010/02/13(土) 22:58:34 ID:???
>>31
Zend_Formを使うといいよ

34 :nobodyさん:2010/02/13(土) 23:12:29 ID:???
おれは大量にnewするのがいやだから、インスタンス管理して投入してる
Validaterだけじゃなくて、decoratorもfilterも
ベンチとったわけじゃないけどね。なんとなく。

35 :nobodyさん:2010/02/13(土) 23:19:28 ID:???
>>29

36 :31:2010/02/13(土) 23:50:18 ID:???
>>33
Zend_Form、そんなに画期的なんですか?
ありがとうございます、調べてみます。

>>34
インスタンス管理ってどんなことをするんでしょうか?
かなり恥ずかしい質問かもしれないです、すみません

php インスタンス管理/php インスタンス共有/オブジェクト指向 インスタンス管理
などでググって調べたんですがはっきりわかるものが出てきませんでした。
zend以前の質問かもですね…
うーん、、

37 :nobodyさん:2010/02/13(土) 23:56:21 ID:???
インスタンス管理って、別にたいしたことじゃない。
変数に保存しておいて、setValidaterするだけ

38 :nobodyさん:2010/02/14(日) 00:24:20 ID:???
>>36
すごく画期的。Javaの入力フォームみたいな感じで作れる。
フォームの作成とバリデーションを一緒にやってくれる。
ただ、デフォルトだと決まったレイアウトになるからそこら辺がいやでなければ断然こっち。


やりたいことを書くとこんな感じ
$form = new Zend_Form();
$form->setAction('/path/to/script')->setMethod('post');

$int = $form->createElement('text', 'int');
$int->setRequired();
$int->addValidator('GreaterThan', false, n);

$form->addElement($int);

39 :nobodyさん:2010/02/14(日) 01:09:08 ID:???
>>37
どうもありがとうございます。
最初に変数に入れておくって、
(例として、今、GreaterThan.phpを開いてみているんですが)

$g = new ZendValidate_GreaterThan()//ここでは値を入れない
$chkParamA = $g->setMin(10);
if(!chkParamA->isValid($paramA)){//エラー出力}
$chkParamB = $g->setMin(5);
if(!chkParamB->isValid($paramB)){//エラー出力}

こんな手順でされているということでしょうか?
setValidatorというメソッド?がマニュアル見ても見つけられなかったので
ぜんぜん変なこと聞いてるかもしれないです、すみません。
しつこくてすみません、お返事いただけると幸いです。
ただこのやり方だとnewが減らせるだけで行数の多さは大して変わらないですね…
しょうがないのかな


>>38
わざわざありがとうございます。
パラメータの種類や名前と一緒にバリデータルールまでまとめて定義できるんですね
確かに楽だしすごいなー
ただ、<input name="userName[]" type="text" />を任意の数だけループ出力したり
n個目だけCSSのクラスを適用するような処理には向いてなさそうですね。。
テーブルに組み込んだりのレイアウトも癖がありそうだし…
上手に使い分けできるようにならなきゃだめですね〜
難しいけどできるようになりたいな。。


お二人とも、本当にありがとうございます

40 :nobodyさん:2010/02/14(日) 09:47:20 ID:???
あぁ、すまんtypo
Zend_Form関係のsetValidatorsを使う
必要なValidatorのセットを作っておいてFormとかElementに設定して使う

> n個目だけCSSのクラスを適用するような処理には向いてなさそうですね。。
めちゃめちゃ向いている。
そのためのZend_Form


41 :nobodyさん:2010/02/15(月) 13:14:36 ID:???
Zendの書式で質問なんですけど、なんで字下げにタブ使っちゃダメなの?
ドキュメントに理由が書いてないのですごく引っかかります。

42 :nobodyさん:2010/02/15(月) 14:20:38 ID:???
ドキュメントに書いていないことなんだよな。
で、他人の妄想を聞いてどうすんの?

43 :nobodyさん:2010/02/15(月) 15:04:28 ID:???
妄想とか聞く気はないんですが、どこかに書いてあって見つけきれないだけかと思い
聞いてみました。
明確に書いてあることなのでそれなりの理由があると思ったんですがなにかおかしなこと聞いていますか?

44 :nobodyさん:2010/02/15(月) 15:11:15 ID:???
コーディング規約があるプロジェクトに参加したことないのか
複数人で開発するときは、書き方が混ざったら読みづらくなるから
全員同じ書き方にあわせる
ただそれだけの話だ

45 :nobodyさん:2010/02/15(月) 15:14:02 ID:???
>>44
このあたりとか、"タブ スペース"あたりでググるとそれ関連のがわんさかと。
http://blog.livedoor.jp/dankogai/archives/50475459.html

>>26じゃないけど、このスレは基本突っかかってくるからあんまり気にしない方がいいよ。
利用者がひねくれたフレームワークなのかもしれない。

46 :45:2010/02/15(月) 15:15:26 ID:???
>>45>>43宛で

47 :nobodyさん:2010/02/15(月) 15:15:47 ID:???
>>43
PEARについて書いてあるけどたぶん理由は同じなので。
ttp://www.phppro.jp/phpmanual/pear/faq.tabs-vs-spaces.html

ZendはPEARの規約を引き継いだんだと思うけど

48 :nobodyさん:2010/02/15(月) 15:52:24 ID:???
diffとったときに、スペースがタブになってると萎える
かといって、PHPの場合、テンプレ兼ねてるからタブだけガン無視も無理だし

49 :nobodyさん:2010/02/16(火) 03:49:53 ID:iRRBilsA
一つの同じコントローラ中に
・queryAction
・finishAction
の二つのアクションがあります。

queryActionではデータベースへのquery登録処理(insert)がされていて、
それが成功したら
$this->_forward('finish'); と、finishAction(完了画面)に遷移させています。

が、遷移後の画面で画面をリロードすると、再度クエリしようとしてしまいます。
どうしたらいいでしょうか?
リロードしても何も起こらないようにしたいのですが。。

50 :nobodyさん:2010/02/16(火) 03:59:11 ID:???
>>49
処理終了後はforwardじゃなくてredirect

51 :nobodyさん:2010/02/16(火) 05:19:42 ID:???
>>49
PRG (POST-REDIRECT-GET) パターンが一般的かなぁ
他にはpostにチケットを入れといて、リロード時や2度押しを判別

52 :nobodyさん:2010/02/16(火) 12:16:10 ID:???
フィルターを一部のコントローラーだけでなく、全体に適用したいのですが
それ用の処理関数はありますか?

53 :nobodyさん:2010/02/16(火) 15:12:42 ID:iRRBilsA
現在zend_mailをつかってて、メール送信できないトラブルにはまっています。
それで、sendmailの設定などしていたらpostfixに切り替えたい気持ちになってきました。

zend_mailはpostfixに対応してるんでしょうか?
php.iniのsendmail_pathをpostfixのに変更すればいいのでしょうか?

linuxのメールソフトに関してはsendmailよりもpostfixやqmailのほうがメジャーだという
傾向のようなのに、マニュアルやzFW徹底入門などを見ると、ソフトの切り替えに関して
書いていないので困っています。

zendMailを利用されている方、標準のsendmailのままで使ってるんでしょうか?
ご意見もらえると嬉しいです。



>>50-51
ありがとうございます。たすかりました!

54 :nobodyさん:2010/02/16(火) 15:16:45 ID:???
MTAなんて何使っても同じ
トヨタ車でもホンダ車でも目的地に着けるのと同じ

55 :nobodyさん:2010/02/16(火) 16:05:59 ID:???
>>53
スレチだよ

56 :nobodyさん:2010/02/16(火) 18:42:14 ID:???
>>54-55
ありがとうございました。
zendFWにかかわるのでスレチじゃないかと思ってましたが、すみません


57 :nobodyさん:2010/02/16(火) 19:04:48 ID:???
別にいいよ。すみませんはいらない。
1. sendmailからpostfixへの切替方法
2. phpでsendmailではなくsmtpでメール送信する方法

それぞれどこに聞くといいかちょっと考えてみて

Zend_Controllerをいじっててトイレに行きたくなったんだけどトイレはどこ?
そのレベル

58 :nobodyさん:2010/02/16(火) 19:08:26 ID:???
メール出来る様に設定すればいいだけだしな。
メール出来るならZFでも問題なく使える。
ZFからスパムメール送るなら規制されて当然w

59 :nobodyさん:2010/02/17(水) 02:08:15 ID:QzZxEOBR
相談です。リダイレクト処理がうまくいきません

hogeController/indexAction/
hogeController/aaaAction/
hogeController/bbbAction/
という構造のコントローラがあります。
この中のaaaActionで
$this->_redirect('/hoge/bbb'); としてbbbアクションにリダイレクトさせてるんですが
どういうわけかbbbへのリダイレクトの結果indexActionの処理が実行されています
(アクションの中身は以下のとおりです。)
public function indexAction(){
 echo "indexAction";
}
public function aaaAction(){
 //ここの処理に成功したら以下のリダイレクト
 $this->_redirect('/hoge/bbb');
}
public function bbbAction(){
 echo "bbbAction";
}

ブラウザのURLを見ると localhost/hoge/bbb となっているのに
ブラウザの画面では 「bbbAction」ではなく「indexAction」 とindexActionの結果が出力されるのです。
どんな原因が考えられるでしょうか?

60 :sage:2010/02/17(水) 02:31:41 ID:???
>208
returnを使ってください。
redirectだけではなくforwardも同様ですよ。

public function aaaAction(){
 //ここの処理に成功したら以下のリダイレクト
 return $this->_redirect('/hoge/bbb');
}

ちょうど素通りしましたのでご参考になれば。

61 :nobodyさん:2010/02/17(水) 03:38:19 ID:???
>>60
こんな時間にありがとうございます
でも、そのreturnを冒頭に加える処理をしても結果は同じでした
そもそもなんでindexActionに転送するのか、
bbbActionの中に限らずredirect処理を実行してる場所なんて
どこにもないので困っています。
どんな原因が考えられるでしょうか?

62 :61:2010/02/17(水) 10:06:25 ID:???
自己解決しました
原因はredirectの動作には関係ありませんでした
routingでbbbアクション用のルート設定をしてなかったのが原因でした
indexが出力されるのは/hoge/bbbのbbbをパラメータと判定されてたからでした
お騒がせしてすみません、ありがとうございました

63 :nobodyさん:2010/02/18(木) 15:20:23 ID:???
Manual英語の部分まだまだ沢山あるね

64 :nobodyさん:2010/02/18(木) 15:46:08 ID:???
個人的にはPEARのマニュアルのいい所をZFには導入して欲しいと思う


65 :nobodyさん:2010/02/18(木) 16:34:46 ID:???
http://www.live-commerce.com/

66 :nobodyさん:2010/02/19(金) 10:25:20 ID:???
Zend_Cacheにgetってメソッドがあったようですが、コレはどうなったのでしょうか?
ZF徹底入門(バージョンは1.5のようです)のP455の一番下に書かれていたのですが、後ろのリファレンス集には書かれていません・・・
昔のマニュアルなどには$cache->get()みたいに書かれて使われていたみたいなのですが、最近のマニュアルには書かれていませんし、APIにも出てきません


67 :nobodyさん:2010/02/19(金) 12:35:08 ID:???
その本のことは知らんけど、昔から test load save だったと思うよ。
なんかの間違いでは

68 :nobodyさん:2010/02/19(金) 14:06:08 ID:???
過去のソース見ればええねん

69 :nobodyさん:2010/02/19(金) 14:28:05 ID:vk4cE2Qg
>>66
Zenf_Registryと勘違いしてないか?

70 :nobodyさん:2010/02/19(金) 14:31:26 ID:???
>>67
自分も急にgetメソッドとか書かれて「?」って感じでその本をくまなく見てみましたがZend_Cache内では見当たらず、マニュアル、APIと探しましたがありませんでした
Web上では少なかったですが見つけましたが、推奨メソッドなのか良く分からなくて
もしかしたらどっかのバージョンで廃止になったかな、とも思いましたがバージョンアップ情報には書かれていませんでした
このサイト(http://itpro.nikkeibp.co.jp/article/COLUMN/20060810/245681/?ST=lin-server&P=3)にはgetが書かれていましたが、0.1.5という化石のようなバージョンで参考になりませんでした


71 :nobodyさん:2010/02/19(金) 14:34:05 ID:???
>>69
えっ?
Zend_Cacheのページですし、Outputフロントエンドの項目の説明文中に書かれています
Zenf_Registryはこのコード、MVC内では使用されていないようです
getメソッドと書かれているくせに、サンプルコードにはいっさいgetは入っておりません

72 :71:2010/02/19(金) 14:36:38 ID:???
Zenfではなく、Zend_Registryです


73 :nobodyさん:2010/02/19(金) 16:12:47 ID:g43faW/Y
ZF徹底入門のTypoってことで
次の方どうぞ

74 :nobodyさん:2010/02/20(土) 00:54:29 ID:???
http://framework.zend.com/svn/framework/standard/tags/release-0.9.0/library/Zend/Cache/Core.php
> THIS METHOD IS DEPRECATED : USE LOAD() INSTEAD (same syntax) !
> it will be removed in ZF 1.1 !
なんで1.0じゃないの。。

75 :nobodyさん:2010/02/20(土) 10:04:46 ID:???
>>74
他のことが忙しくて、 1.0 には間に合わないと contributor が思ったからじゃないの?

76 :nobodyさん:2010/02/21(日) 18:19:24 ID:X8UnhclP
質問です。
zend_validator使ってるんですが、NotEmptyバリデータで警告文を設定しても
標準の警告が出てしまいます
$val_loginPass_empty = new Zend_Validate_NotEmpty();
$val_loginPass_empty->setMessage('パスワードが未入力です。', Zend_Validate_NotEmpty::IS_EMPTY);
if(!$chain_loginPass->isValid($params['loginPass'])){
 foreach($chain_loginPass->getMessages() as $errMsg) $errMsgAry[] = $errMsg;
}

こんな処理で該当フォームを未入力で送信したところ、
 # パスワードは6文字以上で入力してください。(文字数制限のバリデータもこの上で書いてます)
 # ?? is an empty string
 # パスワードが未入力です。
と出力されるのです。
ちなみにpost値をdumpすると ["loginPass"]=> string(0) "" となります。
何が原因でしょうか? ??は ' らしいですがそんなのどこにも入れてないんですが…
他の箇所のNotEmptyでは設定した警告文以外でません。。
どなたかご意見よろしくお願いします。

77 :nobodyさん:2010/02/21(日) 19:14:38 ID:???
>>76
インスタンスに関係性がない

78 :nobodyさん:2010/02/21(日) 20:42:22 ID:???
>>76
コテハン付けてくれ

79 :nobodyさん:2010/02/21(日) 21:15:35 ID:???
>>76
コテハンにすると質問に答えてもらいやすくなるよ。

80 :nobodyさん:2010/02/22(月) 11:06:23 ID:???
Zend_Currencyを使うと、エラーが出るのですが、どう対処すればいいのでしょうか?
エラー内容は以下の通りです

Fatal error: Uncaught exception 'Zend_Currency_Exception' with message 'No region found within the locale 'ja'' in
C:\php\includes\Zend\Currency.php:277 Stack trace: #0 C:\php\includes\Zend\Currency.php(333): Zend_Currency->_checkParams(NULL,
'ja') #1 C:\php\includes\Zend\Currency.php(518): Zend_Currency->getShortName(NULL, 'ja') #2 C:\php\includes\Zend\Currency.php(99):
Zend_Currency->setLocale(NULL) #3 C:\Apache2.2\htdocs\Zend\currency\toCurrency.php(4): Zend_Currency->__construct() #4 {main}
thrown in C:\php\includes\Zend\Currency.php on line 277

自分には良く分かりませんでした


81 :80:2010/02/22(月) 11:08:15 ID:???
すみません、ZFのバージョンは1.9.6だったと思います
PHPは5.2.12です

82 :80:2010/02/22(月) 11:25:50 ID:???
連投すみません
今、バージョンによって駄目なのかと思い、最新版の1.10.1にしたのですが、今度も

Fatal error: Uncaught exception 'Zend_Currency_Exception' with message 'No region found within the locale 'ja'' in
C:\php\includes\Zend\Currency.php:548 Stack trace: #0 C:\php\includes\Zend\Currency.php(101): Zend_Currency->setLocale(NULL) #1
C:\Apache2.2\htdocs\Zend\currency\setFormat.php(4): Zend_Currency->__construct() #2 {main} thrown in
C:\php\includes\Zend\Currency.php on line 548


のようなエラーが出ました(ライン数は大きく変わっていますが)
Zend_Localeが影響してエラーが出るとか何かで読んだ気がするのですが、Zend_Translate、Zend_Date、Zend_Measureなどは普通に動作しておりました


83 :nobodyさん:2010/02/22(月) 12:20:57 ID:???
今はjaにしてる?言語ならjaでいいけど、地域がわからないと通貨がわからないからね
ja_JPにしてみたらどう?

84 :80:2010/02/22(月) 14:39:46 ID:???
>>83
ありがとうございました
ja_JPにしたら出来ました
ご迷惑おかけしました


85 :nobodyさん:2010/02/22(月) 19:06:49 ID:???
覚えることいっぱいあるなぁ
もう疲れたよ

86 :nobodyさん:2010/02/22(月) 20:11:47 ID:???
いちいち覚えてないよ
必要になったら調べるだけ

87 :nobodyさん:2010/02/22(月) 20:29:21 ID:???
確かに、ZFは他のFWと比べても色々と大変だよな
今コンポーネントっていくつあるんだっけ?
70あるかないかってとこかな?


88 :haruna:2010/02/23(火) 14:59:27 ID:p7GWr9xn
ZendFramework徹底マスター(ソーテック社)のサンプルをダウンロードし、Apacheのhtdocs内に入れたのですがサーバが見つかりませんとなり、動作しません。
例えば、C:\Apache2.2\htdocs\ZF2\Chapter02-02内のHogeControllerのpiyoActionにアクセスしたいので、http://localhost/ZF2/Chapter02-02/Hoge/piyoのように記述しましたがエラーが出ました。
本書にはhttp://localhost/Hoge/piyoでアクセスしていますが、コレで実行しても案の定駄目でした。
この場合、どのようにURI記述すればアクセスできるのでしょうか?
フォルダ構成は以下の通りです。

Chapter02-02 --- html--index.php
|
---application
|---models
|---views
|---controllers
|---HogeController.php
|---ErrorController.php


89 :nobodyさん:2010/02/23(火) 15:14:19 ID:???
おれも初心者で詳しくないが、ZFダウンロードしてきて展開してinclude_path通してrewrite設定してる?

90 :nobodyさん:2010/02/23(火) 15:36:27 ID:???
> サーバが見つかりません

URIの前にlocalhostにアクセスできてないでしょ

91 :88:2010/02/24(水) 09:18:28 ID:???
まさかのYahoo!地域回線ダウンで一日ネットに繋げませんでした・・・
>>89-90
設定はおかしくないはずなのですが・・・
この前にZendFramework徹底入門をやって、しっかりとZFは動作していましたし
PHP、Apache設定はずっと使っていて何の問題も無いので大丈夫だと思います
ZFはパスの書き方がちょっと癖があるのでChapter02-02の部分が悪いのかと思ってフォルダ名をtestとかに変えても駄目でした
徹底入門のサンプルと同じhtdocsに入れているのですが、どうして出来ないのかと思いまして
サンプルのコードを色々と見てみたのですが、悪そうな部分もなく、パスも大丈夫だと思ったのですが・・・

>>88は知人にメールを送って書き込んでもらったのでちょっと線がずれているようですので書き直します
Chapter02-02 --- html--index.php
          |
          ---application
             |---models
             |---views
             |---controllers
                 |---HogeController.php
                 |---ErrorController.php

((index.php))
<?php
require_once 'Zend/Controller/Front.php';
$front = Zend_Controller_Front::run('../application/controllers');

((HogeController.php))
<?php
require_once 'Zend/Controller/Action.php';
class HogeController extends Zend_Controller_Action
{
public function piyoAction()
{ }
}

92 :89:2010/02/24(水) 09:51:56 ID:???
つまりhtdocs直下にChapter02-02を入れたわけね
htdocsがDocumentRootなわけね
で、RewriteBase設定は /Chapter02-02/html/ になってると

ここまでの設定はおかしくないはずと・・

93 :nobodyさん:2010/02/24(水) 09:52:00 ID:???
> 設定はおかしくないはずなのですが・・・

じゃぁ、設定は変えなくていいね。

94 :nobodyさん:2010/02/24(水) 09:52:51 ID:???


95 :nobodyさん:2010/02/24(水) 09:56:00 ID:???
そのパス通りなら、'../application/controllers'は違うよな

96 :89:2010/02/24(水) 09:58:17 ID:???
違うか>>88見るとC:\Apache2.2\htdocs\ZF2\Chapter02-02
だからRewriteBaseは /ZF2/Chapter02-02/html/ になるかな

97 :nobodyさん:2010/02/24(水) 10:39:30 ID:???
友達に頼んで書き込んでもらうほど匿名掲示板に期待されても

98 :88:2010/02/24(水) 12:00:03 ID:???
>>97
本書のサポートページがなくて、また、質問は受け付けていないようなのです・・・

>>皆さん
ありがとうございました
解決いたしました
確かに、RewriteBaseのパスを間違えていたようでした
ほんとごめんなさい


99 :nobodyさん:2010/02/24(水) 23:57:57 ID:siRy84kx
質問させてください。
コントローラの読み込みがうまくいかないのですが何が原因でしょうか?
エラーは以下です。
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\nStack trace:\n
#0 /usr/lib/php/Zend/Controller/Front.php(936): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http),
Object(Zend_Controller_Response_Http))\n#1 /var/www/html/index.php(35): Zend_Controller_Front->dispatch()\n
#2 {main}\n thrown in /usr/lib/php/Zend/Controller/Dispatcher/Standard.php on line 241, referer省略

コントローラ名が単純でなく、命名規則に反してるのか、あるいはルーティングがおかしいのかと思ったのですが
自分ではわかりませんでした。すみません、ご意見お願いします。
■URLは
http://localhost/admin-spot/
■コントローラ(/var/www/application/Controllers/AdminSpotController.php)
<?php
require_once 'Zend/Controller/Action.php';
class AdminSpotController extends Zend_Controller_Action {
public function init(){ }
puglic function indexAction(){}//何も書いてません
}
■viewスクリプト(/var/www/application/smarty/templates/default/admin-spot/index.tpl)
 中身はhtmlタグだけでできていて、smartyタグは入ってません(エラーの要素ないかなと。。)
■ルーティング
routes.adminSpot.route= "/admin-spot/*"
routes.adminSpot.defaults.controller= "AdminSpot"
routes.adminSpot.defaults.action= "index"
routes.adminSpot.type = "Zend_Controller_Rou

長くなってしまいすみません、よろしくお願いします。

100 :nobodyさん:2010/02/25(木) 00:09:52 ID:???
ErrorControllerをちゃんと設置するか
もしくは、
$front->throwExceptions(true);
して、エラーの原因を探ってみて

101 :99:2010/02/25(木) 00:27:05 ID:nHRZ8Mu+
>>100
すばやいレスありがとうございます。
ルーティングの設定やコントローラ名・ファイル名などはあれで問題ないのでしょうか?
フロントコントローラの一番下に
$front->throwExceptions(true);
と追記しましたが、画面は真っ白のまま、エラーログも同じ変わりありませんでした

102 :nobodyさん:2010/02/25(木) 00:40:49 ID:???
フロントコントローラーの1番下ってどういう意味かわからないけど、
Zend_Applicationを使ってるなら、
設定ファイルで↓のように書く
frontcontroller.throwexceptions = 1

正しく動いてないなら、なんか間違ってる。
設定とかファイル名なんて、全部見ないとわからないよね。


103 :99:2010/02/25(木) 01:08:47 ID:???
>>102
zend_applicationは使ってません。
フロントコントローラは以下のようにしましたが、おかしいでしょうか? 本当にたびたびすみません

require_once 'Zend/Controller/Action.php';
$front = Zend_Controller_Front::getInstance();
//ルーティング
require_once 'Zend/Config/Ini.php';
$config = new Zend_Config_Ini('myRoutes.ini', 'myApp');
$router = $front->getRouter();
$router->addConfig($config, 'routes');

/* 以下デフォルト */
$front->setControllerDirectory(APP.'/controllers');
$view = new Zend_View_Smarty();
$render = new Zend_Controller_Action_Helper_ViewRenderer($view);
$render ->setViewBasePathSpec(APP.'/smarty')
->setViewScriptPathSpec(':module/:controller/:action.:suffix')
->setViewScriptPathNoControllerSpec(':action.:suffix')
->setViewSuffix('tpl');
Zend_Controller_Action_HelperBroker::addHelper($render);

$front->dispatch();
$front->throwExceptions(true);


$front->dispatch();と$front->throwExceptions(true);を入れ替えても同じエラーが出ています

104 :nobodyさん:2010/02/25(木) 01:22:05 ID:???
$front->setParam('noErrorHandler');
をdispatchより上に

で、問題がsmartyなのかrouteなのか、標準に戻して切り分けてみたら?

105 :nobodyさん:2010/02/25(木) 08:19:42 ID:???
ここで徹底入門のサポートを求められてもねえ。

http://pc11.2ch.net/test/read.cgi/php/1266229386/
【PHP】下らねぇ質問はID出して書き込みやがれ 93
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/1169024172/
PHP相談室 1
http://pc11.2ch.net/test/read.cgi/php/1253912143/
【PHP】PHPフレームワーク総合スレ14
http://pc11.2ch.net/test/read.cgi/php/1158647441/
くだらない質問でもど偉そうに聞いていいスレ
http://pc11.2ch.net/test/read.cgi/php/1162858489/
【お題】PHP学習課題スレ【出せや】
http://pc11.2ch.net/test/read.cgi/php/1213919075/
PHP関連の書籍 第6版
http://pc11.2ch.net/test/read.cgi/php/1139746974/
中学生がPHPを習得するスレ
http://pc11.2ch.net/test/read.cgi/php/987560391/
初心的な質問なのですが・・・・
http://pc11.2ch.net/test/read.cgi/php/1131016915/ 【総合】 Webprog板質問雑談スレッド 1
http://pc11.2ch.net/test/read.cgi/php/1188135310/ こんにちは、PHPプロの方。教えてください。
http://pc11.2ch.net/test/read.cgi/php/1147830986/ 【PHP】Lvうpしたいので宿題ください
http://pc11.2ch.net/test/read.cgi/php/1168761226/ PHP上級者が集まるスレ
http://pc11.2ch.net/test/read.cgi/php/1062053369/ 【PHP】1が必死にPHPを勉強するスレ
http://pc11.2ch.net/test/read.cgi/php/996521284/ PHPを教えることになりました
http://pc11.2ch.net/test/read.cgi/php/1005203165/  PHP作成代行してくれるところ


106 :nobodyさん:2010/02/25(木) 14:55:31 ID:???
ZendFrameworkwo使ってきて、基本的な事はおさえました
しかし、気がついたのですが、コントローラーとヴューは使用しているけれど、モデルってのを一度も使ってきませんでした
色んなサンプルでも上記の2つだけ利用して、モデルは空っぽでした
このmodelという機能は何に使うのでしょうか?


107 :nobodyさん:2010/02/25(木) 14:56:47 ID:???
基本的なこと抑えられてないじゃねぇかw

108 :nobodyさん:2010/02/25(木) 15:02:04 ID:???
なんか、うまいこと言えっていうネタだろ?

109 :nobodyさん:2010/02/25(木) 16:29:58 ID:???
>>107-108
確かに(苦笑
表現が悪かったです
コンポーネントなどは理解したのですが、基本的な事をおさえたつもりでした・・・


すみません、マジで聞いております
このModelフォルダの中にはいったいどんなものを入れて使うのかが分かりません
ControllerとViewは分かったのですが、Modelの概念が見えてきませんでした
ビジネスロジック、処理とか書かれていますが自分には良く分かりませんでした
マニュアルや本などでもサンプルコードや説明に、特にModelの事が書かれていたような記憶も無くて・・・


110 :nobodyさん:2010/02/25(木) 16:32:38 ID:???
>ヴュー
www

111 :nobodyさん:2010/02/25(木) 16:59:25 ID:???
ビジネスロジックを検索すればいいじゃないか

112 :nobodyさん:2010/02/25(木) 17:46:33 ID:???
>>109の言ってる事も分からなくはないな
俺の学習した本なんかもControllerとViewのコードしか書かれていなかったし、説明もほぼ皆無と言えるほど何も書かれていなかったし
マニュアルでもコンポーネントの学習がメインになるだろうから、サンプルにはModel部の事なんて書かれていないし
基本的にFrontControllerとActionControllerが重要視されて解説されてるし
ネットで「ZendFramework Model」なんかで上位部だけ調べてみたけど、あんま具体的なものはないね

113 :nobodyさん:2010/02/25(木) 17:47:41 ID:???
ちょっと意味がわかんないんだけど

MVC知らんの?

114 :nobodyさん:2010/02/25(木) 18:17:10 ID:???
例えるなら

アプリ全体=お前の人生
コントローラー=お前の思想
ウ゛ュー=お前の表現力
モデル=お前の脳みそ

115 :nobodyさん:2010/02/26(金) 01:26:22 ID:???
馬鹿にはzendは無理。

php自体、mvcをきっちり分離出来ないからねえ。だから大規模サイト構築で問題有りまくり出し。

116 :nobodyさん:2010/02/26(金) 01:29:53 ID:???
Multiselect
MultiCheckbox

Why Checkbox is upper?
I should lower it because its not beautiful.

117 :nobodyさん:2010/02/26(金) 01:48:46 ID:???
>php自体、mvcをきっちり分離出来ないからねえ。
え?

118 :nobodyさん:2010/02/26(金) 08:27:54 ID:bxfngNt4
Zend_DBのクエリがうまくいきません。原因を知りたいです。

$stt= $this->_dbConn->query("INSERT INTO `{$tableCopy}`(uId,loginId,name1) VALUE('10000','hoge','taro')");
という処理をやっていますが、目当てのテーブルにデータがINSERTできません。
_dbConnなどDB接続のオブジェクトなどの要素がそろっているのは確認できていて、
ターミナルやmysqlAdminのmysqlのコマンドから直接同じSQL文を実行すればinsertできます。

var_dump($stt)すると、以下のエラーが出ますが、どういうことでしょうか?
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '10000' for key 1
既存データに該当カラムが10000のデータがあるという意味かと思いましたがそんなデータはありませんでした。
また、問題の(?)カラムは主キーです。
同じクエリなのに、zend(php)からだけ実行できないのが理解できません。何が原因なんでしょうか?

つづく

119 :118:2010/02/26(金) 08:29:04 ID:bxfngNt4
つづき

ちなみに、処理全体の流れはトランザクションを利用していて以下のような処理になっています。
参考になるかわかりませんが良ければご確認ください。
(「今回の処理」部分がinsert失敗してもその下のUPDATE文は問題なく実行されます。)

try{
 //トランザクション開始
 $this->_dbConn->beginTransaction();
 $chkRs= $this->_dbConn->query("SELECT * `{$table}` WHERE --");//where以下省略

 if(!$chkRs){
  return "false_nodata";
 }else{
  //↓ここが今回の処理
  $stt= $this->_dbConn->query("INSERT INTO `{$tableCopy}`(uId,loginId,name1)
      VALUE('{$chkRs['uId']}','{$chkRs['loginId']}','{$chkRs['name1']}')");
 
  $this->_dbConn->query("UPDATE {$table} SET `role` = ? WHERE `preLoginPass`=? LIMIT 1", array($member,$tmpPass));
  return "success";
 }
}catch (Zend_Db_Statement_Exception $e){
 $this->_dbConn->rollBack();
 print($e->getMessage());
}catch (Exception $e){
 print($e->getMessage());
}



120 :nobodyさん:2010/02/26(金) 08:42:03 ID:???
VALUESじゃねの?
エラーはちゃんとintegerにしろって書いてあるようにみえるけど。

121 :nobodyさん:2010/02/26(金) 08:50:35 ID:???
このスレってさ、5人くらいしか居ないんじゃねぇの?
なんか文章の書き方が同じように思える
少々ガラの悪いのが数人って感じ?

122 :nobodyさん:2010/02/26(金) 09:32:08 ID:???
>>120
>>118
主キーに同じIDを使ってinsertはできないというエラー

バックアップかdirty更新をやりたいんだろうけど、
同じスキームにしないでコピー先に専用の主キーを振る方がよくね。
てか、重そうだなその処理。バックアップならSQLひとつでいけそうだけど。
あぁ、まぁ書いてるときりがないからこの辺でw

123 :nobodyさん:2010/02/26(金) 10:01:08 ID:???
で、自己解決しましたとか言って、なんか関係ない話を理由にするんだよな
どうみても釣りw

124 :nobodyさん:2010/02/26(金) 10:33:04 ID:???
解決する人は何故か解決した方法は書かない

125 :118:2010/02/26(金) 16:21:38 ID:???
答えてくれた皆さんありがとうございます。
いただいたアドバイスを元に突き詰めてるんですが、原因がまだわかりません。
SQLが異常な動作をしてるみたいなので今はそっちの確認をしてますが
解決しなかったらまたこちらで相談させてください。
ほんとにすみません。
ありがとうございました。

126 :nobodyさん:2010/02/26(金) 17:07:57 ID:???
どうもここのスレの住人はすぐに釣りだとか決め付けたがるな

127 :nobodyさん:2010/02/26(金) 17:25:08 ID:???
スレの住人じゃなくてオレな

128 :125:2010/02/26(金) 17:34:46 ID:???
解決しました!
皆さんすみません、よく見たら最後のクエリ処理の後でトランザクションをcommit()してませんでした
最後のクエリのテーブルがMyISAMだからこいつだけ実行されてたんでした。
ありがとうございました。お騒がせしました。

129 :nobodyさん:2010/02/26(金) 18:11:16 ID:???
>>127
お前かw
一番上の辺りの、即効釣りとか決め付けてるのもお前か?
結構頻繁に出てくるよなw

130 :nobodyさん:2010/02/26(金) 18:16:43 ID:???
>>129

そう>>4 もオレ
配列のechoがわからない奴がZend_Filter_Inputのエラーメッセージを
設定するとかありえないww



131 :nobodyさん:2010/02/26(金) 18:18:06 ID:???
>>128
MySQLならautocommitじゃね



132 :nobodyさん:2010/02/26(金) 19:25:12 ID:???
教えてください。以下のようにZend_Viewのみを使って表示させるだけの
シンプルなものなんですが、$view->strに日本語を代入するとまったく表示
されずに、$view->str = '<b>foo</b>';だと「<b>foo</b>」と表示できます。
これはマルチバイト表示用の設定とかあるんでしょうか?
因みに、sjisとeuc-jpだと表示されずにutf-8だと表示されます。

---- index.php
require_once 'Zend/View.php';

$view = new Zend_View();
$view->str = '<b>マルチバイト</b>';
$view->setScriptPath('.');
echo $view->render('view.phtml');

---- view.phtml
<html>
<body>
<p><?php echo $this->escape($this->str);?></p>
</body>
</html>

133 :nobodyさん:2010/02/26(金) 19:53:53 ID:???
なんか恨みでもあるのか

134 :132:2010/02/26(金) 21:41:26 ID:???
自己解決しました。

135 :nobodyさん:2010/02/26(金) 21:52:25 ID:???
どうやって?

136 :nobodyさん:2010/02/27(土) 15:37:06 ID:???
この流れにワラタw

137 :nobodyさん:2010/02/27(土) 16:57:04 ID:???
がんばって。

138 :nobodyさん:2010/03/04(木) 20:52:09 ID:iGtVy898
Zend_DBで、insertメソッドでもupdateメソッドでもqueryメソッドでも良いんですが、
値が入っていないパラメータを送るとき、自動的にカラであることをチェックして
自動的にNULLを入れて送信することって無理なの?

$hoge= $params['hoge'] != "" ? $params['hoge'] : NULL;
$db->update('book', array('hoge'=>$hoge),$db->quoteInto('aaa=?' ,$aaa));
みたいなことをいちいちやってるんだけど、効率悪いと言うか。
なにか上手いやり方ないですか?



139 :nobodyさん:2010/03/04(木) 21:30:33 ID:???
Zend_Db_Tableを使うとか

140 :nobodyさん:2010/03/04(木) 23:39:32 ID:???
何か面倒な仕様だな。コボル廚か?

141 :nobodyさん:2010/03/05(金) 10:23:06 ID:???
やっと2chに繋がったか・・・

142 :nobodyさん:2010/03/05(金) 12:14:29 ID:???
Yes, You Can!

143 :nobodyさん:2010/03/05(金) 13:55:06 ID:???
チョンにはまいるよ、マジで

144 :nobodyさん:2010/03/06(土) 02:26:39 ID:???
チョンも在日チョンもうざいね。

145 :nobodyさん:2010/03/11(木) 18:03:58 ID:uuGJLteE
Zend_Dbのqueryメソッドで updateやdeleteを実行したときに、それが成功したかどうかを
判断するのはどうやったらいいんですか?


146 :nobodyさん:2010/03/11(木) 18:39:23 ID:???
判断ってのは相場が決まってる
返り値で判断するかエラーメッセージがセットされてるの見るかcatchでとっ捕まえるか

147 :nobodyさん:2010/03/11(木) 19:26:12 ID:???
selectしてデータが入っているか、消されているかを確認する。

148 :nobodyさん:2010/03/11(木) 20:42:00 ID:uuGJLteE
>>146
どうもありがとうございます。
僕も返り値で判断したくて試してるんですけど、

$rs =$db->query("UPDATE ---");
var_dump($rs);
したところ、成功しても失敗しても$rsにはオブジェクトが入ってきますよね?
このオブジェクトをどう操作したら成功・失敗が判別できるのかわからない状況です。
無理なのでしょうか


>>147さんはクエリするたびに判定用のクエリを再度実行しているんですか?

149 :nobodyさん:2010/03/11(木) 22:15:03 ID:???
>>148
全クエリのたびになんて実行してないよ。

エラーも例外も発生してないのに矛盾が発生して、DBのログにも何も出ず、
Zend_Dbのプロファイラーでも確認できなかった時とかは、selectして前後のデータを確認する。
エラーが出なくても、データベースの自動変換とかで意図しないデータになることがあるからね。

150 :nobodyさん:2010/03/13(土) 12:35:39 ID:EhIFVaNI
煽るつもりじゃなくて、真面目に聞きたいんだけど、
Zend Framework ってかなりイケてないですよね?
最近ちょろっと使ってみたんですけど使いにくくて仕方ないです。
このフレームワークそもそも有名なサイトでの使用実績とか全然ないし、
railsと比べた時こっち選ぶ理由が一個も見当たらない・・

151 :nobodyさん:2010/03/13(土) 12:38:50 ID:???
railsじゃないからね
肉屋に来て、まぐろがないって言ってるようなもの

http://www.google.co.jp/trends?q=Zend+Framework%2CRuby+on+Rails%2Csymfony%2Ccakephp&ctab=0&geo=all&date=all&sort=0

152 :nobodyさん:2010/03/13(土) 14:59:16 ID:???
フロントエンドまでカバーするフレームワークじゃないからなぁ
裏方ではけっこう使われてるんじゃね

153 :nobodyさん:2010/03/13(土) 16:03:18 ID:???
>>149
どうもです。
自分の未熟なせいか良くわからないですが、定期的なメンテナンスの時に
異常を確認したときの検証作業って感じですね
データベースがそんなに不安定なものだとは知らなかったんで、教えてもらってよかったです

日常的なinsertやselect、updateの成功・失敗はどうしたら確認できるのかな
誰か良かったら教えてください

154 :nobodyさん:2010/03/13(土) 17:02:24 ID:???
有名なサイトってどのフレームワーク使ってるか公開してる方が少ないと思うが
なんで有名なサイトで使われてないと思ったんだ?

155 :nobodyさん:2010/03/13(土) 17:06:06 ID:???
名前は出さないけど使われてるよね
http://www.coojin.com/detail/PHP%E5%A4%A7%E8%A6%8F%E6%A8%A1%E3%82%B5%E3%82%A4%28%E3%82%A8%E3%82%A4%E3%82%B1%E3%82%A2%E3%83%BB%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%82%BA%E6%A0%AA%E5%BC%8F%E4%BC%9A%E7%A4%BE%29+%5Ben%5D%E6%B4%BE/145600738

あとフレームワークごとの特徴くらいは調べようぜ
http://www.phppro.jp/article/framework/comparison.php

156 :nobodyさん:2010/03/13(土) 18:11:31 ID:???
>>155

その、phpproの記事は古いな。

157 :nobodyさん:2010/03/13(土) 18:48:06 ID:???
採用件数で一番多いのは、どうみてもWordPress

158 :nobodyさん:2010/03/13(土) 19:53:10 ID:???
記事が古かろうが基本方針や特徴は3フレームワークとも変わってないけどな

159 :nobodyさん:2010/03/13(土) 20:05:04 ID:???
変わってる

・ZFの自動育成はCakeほどではないが、その記事ほど酷いものじゃない。
・規模についてはまったく的外れではないけど、根拠がない
・スピードはsymfonyとZFではほとんど変わらない。symfonyが遅かったのは昔のこと
・その他の比較はsymfonyもCakeもZFも全部○

まったく特徴をとらえていない。


160 :nobodyさん:2010/03/13(土) 21:33:58 ID:???
>>155
その求人、大規模ポータルサイトへの派遣で
経験1年以上の条件で設計からテストまで担当って
典型的な○○請負じゃまいか!

161 :nobodyさん:2010/03/13(土) 23:17:06 ID:???
Symfony今でも遅いぞぶっちゃけ
去年の暮れにうちの社のインフラの奴らがベンチ取ってZendに決めてた

162 :nobodyさん:2010/03/13(土) 23:17:36 ID:???
>>160
おいおいエイケア知らないのか

163 :nobodyさん:2010/03/13(土) 23:22:00 ID:???
ちょっと前のzendはかなり自分でいじらなきゃ使いものにならなかったけど
最近のは結構イケてますよね

164 :nobodyさん:2010/03/13(土) 23:28:04 ID:???
な、なに?エイケアって?

165 :nobodyさん:2010/03/14(日) 01:58:17 ID:???
企業のメルマガの配信ってだたいエイケア経由だぞ
http://www.a-care.co.jp/
要するにエイケアはSIとかじゃなくてサービスする側の企業

166 :nobodyさん:2010/03/14(日) 04:43:05 ID:???
>>160
派遣って書いてね?
っても偽装請負なんて茶飯事だけど

単金安いよなぁとか思ったけど,要求スキルも低そうだし残業出るなら


167 :nobodyさん:2010/03/14(日) 07:27:06 ID:???
>>165
メルマガってもう流行らないよね
メルマガで当てた資金で開発にも手を出して、
開発のノウハウなんてないけど、人材だけ投入できますよ?
っていうハマりパターンはよくある。
腕に覚えがあるやつはチャンスかもな。

168 :nobodyさん:2010/03/14(日) 08:41:20 ID:???
gmailで弾かれて終了だと思うけどな。偽装spamなんだし。
まだまぐまぐとか人雇ってたりしてたな。ヤバくて逃げ出した香具師の穴埋めか?

169 :nobodyさん:2010/03/14(日) 09:34:00 ID:???
いや、企業のメールニュース配信は別に廃れてないだろ

170 :nobodyさん:2010/03/14(日) 14:26:22 ID:???
メルマガスタンドと勘違いしてるんだろ
レベル低いな相変わらず

171 :nobodyさん:2010/03/15(月) 04:09:50 ID:???
難でいちいちメールで配信してあげなきゃ成らないの。
rss見て自分でチェックしろよ。

172 :nobodyさん:2010/03/15(月) 10:00:30 ID:???
>>169
>>170
レベル低いな相変わらず。
メール自体がすたれるだろ JK
おまいら新しいサービスを作るために開発やってんじゃねーん?

メール配信が金になるってのは、それだけ大量配信に無理があるからだぜ
それでいて、メルアド間違ったり、メルアド変わったり、盗聴されたり
途中で消えたり、ろくなことないからなメールは。

173 :nobodyさん:2010/03/15(月) 14:04:54 ID:???
やっぱ何にも解ってないんだなお前は

174 :nobodyさん:2010/03/15(月) 14:08:25 ID:???
お前さんは何をわかってるんだい?
で、実績は?

175 :nobodyさん:2010/03/15(月) 14:16:40 ID:???
zendを取り入れた?らしいsymfony2.x系に期待
今はCodeIgniterを改造して使ってごまかしてる

176 :nobodyさん:2010/03/15(月) 14:34:17 ID: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/');


あと他に状況を記載してほしい箇所があれば記載します。

177 :nobodyさん:2010/03/15(月) 14:42:55 ID:???
HTMLソース見る。解決。

178 :nobodyさん:2010/03/15(月) 14:50:26 ID:???
いや、重要なのは、エラーコントローラーがないっていう例外
エラーコントローラーを置かないならエラーハンドラープラグインを無効にするべき

179 :nobodyさん:2010/03/15(月) 15:33:02 ID:S0jC/HjU
>>178
エラーハンドラープラグイン無効にしてみた。
画面真っ白になったからエラーログみてみたけど特にめぼしい情報はなかったー。

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

$front = Zend_Controller_Front::getInstance();
$front->setParam('noErrorHandler', true);

180 :nobodyさん:2010/03/15(月) 15:38:15 ID:???
$front->throwExceptions(true);
はやってある?

181 :nobodyさん:2010/03/15(月) 19:22:03 ID:S0jC/HjU
$front->throwExceptions(true); はやってなかった!

ので、付けたらエラー吐き出されたよ。
どうやらコントローラーの名前を正しく認識していないっぽい感じのエラーでした。
全然別のアクションにとんで全然別のビューを呼んでました。
なんでsakuraにした途端おかしくなったのか結局解明できなかったけれど
飛ぶ先を修正してフォームは動作するようになりました。
ありがとうございました!

182 :nobodyさん:2010/03/15(月) 20:45:57 ID:???
工エエェェ(´д`)ェェエエ工
工エエェェ(´д`)ェェエエ工
工エエェェ(´д`)ェェエエ工

183 :nobodyさん:2010/03/16(火) 16:07:04 ID:???
>>161
また使えないハローワールドベンチか

184 :nobodyさん:2010/03/16(火) 17:14:07 ID:???
そういうことにしたいんだな

185 :nobodyさん:2010/03/16(火) 22:34:19 ID:???
symphony 2 (reloaded) は zend fw 取り入れた rad で,速度も3倍って書いてあったよ。

186 :nobodyさん:2010/03/16(火) 23:16:01 ID:???
そもそも3倍ってなんの3倍だよ

187 :nobodyさん:2010/03/16(火) 23:33:20 ID:???
   , ノ)
  ノ)ノ,(ノi
  (    (ノし
┐) ∧,∧  ノ  いまだ!「通常の」…っと
..|( ( ....:::::::) (
 ̄⊂/ ̄ ̄7 ) ヽ lヽ,,lヽ
 (/ 川口 /ノ   (    ) やめて!
   ̄TT ̄    と、  ゙i

188 :nobodyさん:2010/03/16(火) 23:44:10 ID:???
>>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/

189 :nobodyさん:2010/03/17(水) 01:48:37 ID:???
シャア専用かw

190 :nobodyさん:2010/03/17(水) 03:17:14 ID:0MVPdABS
localhost/controller/hogeaction
と言う感じにアクションにアクセスするとき、あるパラメータがGetもしくはPostで
送られてくることが必須の場合、パラメータの不備を確認するにはどうしたらいいですか?
単純に考えたら$this->getRequest()から値をとって、
if(!$param){
//リダイレクトとか警告表示
}
とするんでしょうが、いろんなコントローラのいろんなアクションで共通して使える
必須パラメータの不備確認処理がないか考えています。
(エラーコントローラは存在しないコントローラへのアクセスの制御だからちょっと違うんですよね?…)


191 :nobodyさん:2010/03/17(水) 03:36:30 ID:???
コントローラの基底クラスにそういうの付けておくというのは?

192 :nobodyさん:2010/03/17(水) 05:52:30 ID:???
必須パラメータがなかったらそのアクションに来てほしくないなら、
ルーターのルートで宣言する
アクションで使える共通機能が欲しいなら、アクションヘルパーを作る。
パラメータチェックぐらいなら、おれは Zend_Form

193 :190:2010/03/17(水) 11:26:18 ID:0MVPdABS
>>191,192
なるほど。意見ありがとうございます。

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

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

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

194 :nobodyさん:2010/03/17(水) 12:07:13 ID:???
そのURL形式が必須なら、既存のルーティングで処理するのは難しそう

形式をこだわらなければ現在あるルーティングで目的は達成できるけど、
もし形式を変更できないなら、それにあったルートクラスを書く方が、
オーバーヘッドはないしクリーンだよ


195 :nobodyさん:2010/03/17(水) 12:19:44 ID:???
質問させてください
マニュアル(http://framework.zend.com/manual/ja/zend.db.table.html)の、例27などに出てくる、select()の引数のZend_Db_Table::SELECT_WITH_FROM_PARTというのが分かりません
コレはいったい何なのでしょうか?
自分の持っている本にも載っていませんし、ネットで検索しても良く分かりませんでした
APIでもコンストラクタだという事しか出てこないように思います
いったいコレは何の為に使っているのか分かる方がいましたら教えていただけませんでしょうか?


196 :nobodyさん:2010/03/17(水) 12:57:18 ID:???
>>195
Zend_Db_Tableのソース見た?
どこかで定数がdefineされてるはず

197 :nobodyさん:2010/03/17(水) 12:58:21 ID:???
>>195
selectオブジェクトを作り、そのテーブル単独でfrom指定する
デフォルトでは、fromは自分で指定する。

198 :nobodyさん:2010/03/17(水) 14:41:38 ID:???
symfony2.0はZendFrameworkベース

199 :nobodyさん:2010/03/17(水) 15:04:57 ID:???
Zend Framework 2.0はsymfonyベース?

200 :nobodyさん:2010/03/17(水) 15:46:28 ID:???
>>197
ありがとうございました

201 :nobodyさん:2010/03/17(水) 23:33:02 ID:???
>>198
>>199
だったらそのままいけよw

202 :nobodyさん:2010/03/18(木) 07:52:53 ID:???
たしかに、
Ruby on Railsって、なんで Rails on Rubyじゃないの?って思ってる

203 :nobodyさん:2010/03/18(木) 12:29:21 ID:???
実行速度とか口ばっかで、ろくな実績がない

204 :nobodyさん:2010/03/18(木) 13:07:10 ID:???
framework.zend.comが重いか重くないかで判断するのが簡単

205 :nobodyさん:2010/03/19(金) 06:54:15 ID:???
大規模サイトに不向きだしねえ。

206 :nobodyさん:2010/03/19(金) 11:40:36 ID:2j6+t1LQ
モジュール構成での質問です。
ZF1.9.7を利用しています。

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

ご教授願います。

application.iniで
resources.modules[] =
設定し、モジュール別にルーティングされている事も確認できてます。


207 :nobodyさん:2010/03/19(金) 12:33:49 ID:???
http://weierophinney.net/matthew/archives/234-Module-Bootstraps-in-Zend-Framework-Dos-and-Donts.html

これ、その関係の話。

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

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

何か良い方法あるのでしょうか?


209 :nobodyさん:2010/03/19(金) 15:04:30 ID:???
馬鹿には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フレームワークを作るスレ

210 :nobodyさん:2010/03/19(金) 15:07:32 ID:iYK3Oj1q
>>208
そのブログで書いてあるのは、モジュールを検知して動作するプラグインを書けば?という話

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

モジュール別bootstrapでそのプラグインをフロントコントローラーに登録。
そんな感じ。

211 :nobodyさん:2010/03/19(金) 15:47:42 ID: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/




212 :nobodyさん:2010/03/19(金) 16:02:16 ID: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

213 :nobodyさん:2010/03/19(金) 17:30:31 ID:2j6+t1LQ
>>212
下のリソースのロード制限は解りやすいですね。
ありがとうございます。
これは、各モジュールのブートストラップでinit〜作って
呼べばよいですよね?


214 :nobodyさん:2010/03/19(金) 18:00:26 ID:???
>>213
えっと、すんません。解説がないんでアレですけど。。
わかりにくいようだったら、スルーしてもらっていいっす。恥ずかしいのでw

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

モジュール別に対応するには、上のやつをプラグインとして登録したうえで、
splObserverを実装したクラスならなんでも、モジュール名と一緒にプラグインに
attachすると、プラグインのイベントをupdateメソッドに送ってくれます。
なので、今回のケースだと、モジュール別BootstrapにsplObserverを実装して
updateメソッドで、遅延ロードしたいリソースをbootstrapするとOKなんですけど・・・

215 :nobodyさん:2010/03/20(土) 10:54:26 ID:ZDcRVlf5
>>214
遅くなりました…
ご説明感謝します。

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

sqlObserverは使ったこと無いので勉強しないと理解できないです…
何となくですが、必要な時に初めてinit〜としてresourceを
生成ってことかなと。

216 :nobodyさん:2010/03/20(土) 18:42:46 ID:4HvTXNoM
いえいえ、説明がへぼいので(ry

217 :nobodyさん:2010/03/20(土) 19:24:26 ID:ZDcRVlf5
>>216
またお世話になると思うので宜しくお願いします。

218 :nobodyさん:2010/03/20(土) 23:21:56 ID:???
Zend_Db_Table + Zend_Paginatorの組み合わせで使っています。

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

$select = $db->select()->limit(100);
Zend_Paginator::factory($select, 'DbTableSelect');
としてもlimit(100)が無視されてすべてのデータが入ってしまいます。

219 :nobodyさん:2010/03/23(火) 11:35:31 ID:7nF+H1X7
zend_dbでクエリ実行してる限りは、sqlインジェクション対策は万全なんでしょうか?
自分は名前つきプレースホルダの形でqueryメソッドしているんですが…
今日みたモンベルのサイトがsqlインジェクションで大被害という話をみて気になっています

220 :nobodyさん:2010/03/24(水) 10:34:51 ID:???
ZFってほかのFWよりは軽くて早いけれども、それでもZF使わないよりは遅いらしいですがそのサイトを回っていて体感できるほどでしょうか?


221 :nobodyさん:2010/03/24(水) 12:26:22 ID:???
体感速度はクライアントのマシンやネットワーク環境にも依存する。
早いか遅いかは自分で確かめろ

222 :nobodyさん:2010/03/24(水) 14:01:12 ID:???
作り方にも寄るしねえ。
zf使わなくても重いサイトはいくらでも作れる。pearで逐一sql発行してみたりとか。

223 :nobodyさん:2010/03/24(水) 23:53:42 ID:???
10msかかる処理が50msになったとしたら、数値上は5倍も重くなった事になるよね。
でも体感は出来ない。そんな感じ。



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


225 :nobodyさん:2010/03/25(木) 10:40:05 ID:???
> ある程度の規模の大きさに成長がみこまれる

トラフィックとかユーザー数とか複雑さとかデータ量とか、全部コミコミで話をしてるの?
多分、FWを使う使わないというより他に大事なことがたくさんあって、
それ抜きに結論は出ないと思う。

226 :nobodyさん:2010/03/25(木) 11:16:58 ID:???
>>225
>トラフィックとかユーザー数とか複雑さとかデータ量とか、全部コミコミで話をしてるの?
はいそうです

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

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

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

説明が下手ですみません

227 :nobodyさん:2010/03/25(木) 11:22:48 ID:???
コミコミでは結論は出ないと思います。
手書きかFWかというレイヤーの話とは違いますよ。

228 :nobodyさん:2010/03/25(木) 13:23:18 ID:???
どの程度に成長するかの計画が無ければ判断出来ないしな。
基本作り直し覚悟で模索するしかないよ。経験無いみたいだし。
もしくは成長しなくて金が無駄に成っても最初から、javaで作っておくか。
自分たちでphp素でzfクラスのフレームワーク作れるほうが稀だと思う。

229 :nobodyさん:2010/03/25(木) 20:43:13 ID:???
大規模になるならFW使ったほうがいいんじゃない?

230 :nobodyさん:2010/03/26(金) 01:07:35 ID:0qaztAUz
Zend FrameworkってCGIモードでも動く?

231 :nobodyさん:2010/03/26(金) 02:20:12 ID:???
zend server は apache + fcgi

232 :nobodyさん:2010/03/26(金) 02:39:10 ID:???
mod_php使わないのか。遅そうだ。

233 :nobodyさん:2010/03/26(金) 04:07:42 ID:O2gk3ied
この手の話の大規模って、機能規模なのかアクセス規模なのかがまず明確じゃないな

機能規模のことを言ってるなら、間違いなくコーディング規約なりFWなりで縛るのが吉
アクセス規模の事を言ってるなら、単純なRESTのレスポンスにまでFW使うのはどうかな〜と思い始めてる。
rubyでRoRとかpythonで mod_wsgi + 好みのFW とかなら話は別なんだろうけど

234 :nobodyさん:2010/03/26(金) 13:38:23 ID:???
rorで大規模とかzfより面倒だよ。

235 :nobodyさん:2010/03/27(土) 18:57:25 ID:???
ZendFuckってJavaでいうStrutsみたいなもんだよな。
それだけじゃ使い物にならないところが。

236 :nobodyさん:2010/03/28(日) 02:03:26 ID:???
かといってjsp+jdbcでごりごり描いてるのも大変でしょ。
フレームワーク使って、htmlとpearごりごり描くの狩らぬけ出すだけでも導入効果有るよ。

237 :nobodyさん:2010/03/30(火) 20:43:09 ID:???
Zend_Config_Iniの話ですが、数値でクオート無しの値を読み込んだ後に
Zend_config_Writer_Iniするとクオート付きになってしまいます。

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

対策法はありませんか?

238 :nobodyさん:2010/03/31(水) 06:55:05 ID:???
文字列で統一の方がよくね?

239 :nobodyさん:2010/04/01(木) 08:41:41 ID:???
馬鹿には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

240 :nobodyさん:2010/04/01(木) 23:02:16 ID:???
zendを使って作成されたそれなりの規模のソースを配布しているところってありますでしょうか?
zendについているソースはすべて見ました。
daoやキャッシュなどをフルに利用した参考になるソースありましたら教えて欲しいです。
ディレクトリの構成やDBコネクション、エラー定義などを参考にしたいです。


241 :nobodyさん:2010/04/01(木) 23:35:40 ID:???
>240
http://www.live-commerce.com/

242 :nobodyさん:2010/04/02(金) 00:37:50 ID:???
>>240
お勧めは
storefront
http://www.ohloh.net/p/zfstorefront

TomatoCMS Omekaもなかなかよいよ。

live-commerceを見るのは最後にした方がよさげ。

243 :nobodyさん:2010/04/08(木) 18:48:06 ID:hISebTnv

$query->where("column1 = ? and column2 = ?", array('abc', 'def'));
こんな感じでzend_db のwhere 関数で?(プレースホルダ)を複数使いたいんですが、うまくいきません。
プレースホルダを複数使うのってできないのでしょうか?


244 :nobodyさん:2010/04/08(木) 20:05:16 ID:???
>>243
ソース嫁

245 :nobodyさん:2010/04/08(木) 20:21:47 ID:hISebTnv
ソース読んでもわからんかった
教えてクレヨン

246 :nobodyさん:2010/04/08(木) 21:59:06 ID:???
$query->where('column1 = ?', 'abc')
->where('column2 = ?', 'def');

247 :nobodyさん:2010/04/09(金) 10:10:00 ID:TIvOx/xs
あすいません
column = 1 and (column2 = 2 or column3 = 3)
みたいな場合についてでした。
この場合orWhereを数珠つなぎすると思った通りにならんのです・・
プレースホルダ使わなければなんとかなるのですが。

248 :nobodyさん:2010/04/09(金) 10:31:31 ID:???
orWhereとかあるけど、それでも無理?

249 :nobodyさん:2010/04/09(金) 10:43:22 ID:???
あぁ、すまん、orWhereって書いてたね

> column = 1 and (column2 = 2 or column3 = 3)
これ、評価順を考えてみれば、フラットにできるから。
column2 = 2 or column3 = 3 and column = 1
でどうよ。

250 :nobodyさん:2010/04/09(金) 11:37:31 ID:???
SQLでは優先順位が AND > OR と定められているはずでは?

251 :nobodyさん:2010/04/09(金) 11:43:38 ID:???
最適化エンジン次第じゃない?

252 :nobodyさん:2010/04/09(金) 12:09:21 ID:???
その最適化エンジンやばくないか

253 :nobodyさん:2010/04/09(金) 12:17:33 ID:???
このスレではよくあること

254 :nobodyさん:2010/04/09(金) 13:20:02 ID:???
>>243

実行時は名前付きパラメータで処理されるから、:paramnameとbindを使ってみて

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

256 :nobodyさん:2010/04/12(月) 04:06:48 ID:???
> できれば、のちのちの変更も考えて、addParam()などでデータを追加したいのですが、

そこをもう少し詳しく・・・
それだけじゃ何がしたいのかわからない。

257 :nobodyさん:2010/04/12(月) 13:30:57 ID: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(現在はカラ)


続きます

258 :257:2010/04/12(月) 13:36:32 ID: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
という形で良いんでしょうか?
よろしくお願いします。

259 :257:2010/04/12(月) 21:26:30 ID:???
どうにか自己解決できました
スレ汚しすみませんでした

260 :nobodyさん:2010/04/14(水) 08:59:09 ID:???
すみません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)、 ドメインおよびパスがすべて一致した場合にのみ」と反するような気がします。
単に基本的な事が分かっていないだけなのかもしれませんが、自分には考えても分かりませんでしたので教えて頂けたらと思います。
よろしく御願いいたします。



261 :nobodyさん:2010/04/16(金) 18:02:22 ID:???
secureだからhttps://
.example.comだから*.example.com
/somedirだから/somedir*

262 :nobodyさん:2010/04/17(土) 20:24:51 ID:T3UCpDKa
>>261 Thanksです

263 :nobodyさん:2010/04/21(水) 18:21:04 ID:mfVJoQpI
quickstartとほぼ同じ構成なんですけど、
アクセスURLが /mだったらレイアウトをmobile.phtmlにするって
application.iniでは記述できませんよね?ディスパッチャを拡張するとか?

しょうがないので今はコントローラの中で
$this->view->layout()->setLayout('mobile');
とやってるんですが、そんなもんでしょうか?

264 :263:2010/04/22(木) 13:23:51 ID:???
細かいけど訂正。こうだった
$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;
}

265 :nobodyさん:2010/04/22(木) 17:52:05 ID: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()の使い方は間違ってますか?

266 :nobodyさん:2010/04/22(木) 23:09:32 ID:???
新しいバージョン使いなさい
1.10とか

267 :nobodyさん:2010/04/22(木) 23:55:56 ID:doAUeW+3
>>266
どうもありがとうございます
バージョンが古いのが問題かと思って新しくしたんですが、まだエラーが出ます。
PHP Fatal error: Class 'DOMDocument' not found in /usr/lib/php/Zend/Service/Amazon.php on line 128
何が問題なんでしょうか。
調べたらzendfwよりphp自体の問題に思えて来たのでphpスレに移動します。
ありがとうございました

268 :nobodyさん:2010/04/23(金) 00:33:42 ID:???
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

269 :nobodyさん:2010/04/23(金) 00:37:54 ID:???
>>268
どうもです。
しかし、そこに書いてあることやったんですけどエラー解消しないんですよね
php質問スレに詳細書いたので、気が向いたらお願いします。ありがとうございました

270 :nobodyさん:2010/04/23(金) 04:13:25 ID: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'); でなら目当ての商品情報を取得できるので
コンポーネントの設定や動作条件は満たしてるのではと思うんですが…

271 :nobodyさん:2010/04/23(金) 10:07:38 ID:yrV1Z6KO
Zend_Cache_Frontend_File(http://framework.zend.com/manual/ja/zend.cache.frontends.html)について分からないことがあります

このフロントエンドはバックエンドのオプションとしてmaster_fileを設定するのだと思います
実際上記のマニュアルにも「唯一しなければいけないのは・・・」と書かれています
しかし、上記のマニュアルにはmaster_fileは非推奨と書かれています。
これはどういうことなのでしょうか?

master_fileではなく、master_filesを使えということなのでしょうか?

それともそもそもマスタファイルへのフルパスを指定することがいけないということで非推奨なのでしょうか?
となるとファイルが更新されたタイミングでキャッシュがリフレッシュされるという事が無くなり、そもそもこのフロントエンドの意味が無くなり、このフロントエンド自体が非推奨になってしまうと思うのですが・・・


272 :nobodyさん:2010/04/23(金) 12:26:10 ID:???
>>271
質問なげえよ。master_files使えって意味だよ。
同じ役割だから、小さい方は廃止予定なんだよ。よくあること

273 :nobodyさん:2010/04/24(土) 04:32:30 ID:6V3fZIph
すみません、誰か>>270の質問に意見お願いします。
いまだに原因わからずで… 勝手言ってすみません、気が向いたらお願いします

274 :nobodyさん:2010/04/24(土) 05:40:42 ID:???
>>273
$results を foreach してみたら?イテレーターみたいだから。

参考
http://d.hatena.ne.jp/boto/20070923/1190482142

275 :273:2010/04/24(土) 16:15:43 ID:???
>>274
ありがとうございます!
そのページも見てたんですけど、var_dumpで確認すれば万能って思ってました
イテレータって物自体知らなかった… 本当にありがとう!

276 :nobodyさん:2010/05/01(土) 10:59:43 ID:???
フレームワーク初挑戦とおもってクイックスタート読もうとしたら英語か・・・目次だけ日本語とかパケ詐欺からよ;;
低学歴は本買えってことか・・・


277 :nobodyさん:2010/05/01(土) 11:03:13 ID:???
低学歴はPGやるな

278 :sage:2010/05/02(日) 10:44:31 ID:KVSpskbJ
>>276
「誰かが翻訳しておいてくれる」のが当たり前のことだと思っているのですね。
去年の「Zend_Application まだ翻訳されていない、どうなっているんだ」や
「公式運営者はもっと頑張るべきだ」発言者のように

279 :nobodyさん:2010/05/02(日) 10:54:01 ID:???
そういう考えの人もいるし、考え方は人それぞれ。
翻訳してやってますよ感を出す意味が分からない。

280 :nobodyさん:2010/05/02(日) 11:45:58 ID:???
てか去年の話を蒸し返すとかどんだけ

281 :sage:2010/05/02(日) 12:19:45 ID:Y8fRDT50
>>279
2行目が分かりません

282 :nobodyさん:2010/05/02(日) 23:04:41 ID:???
同意を得ようと意見を放つも、否定されると「人それぞれだろ」と逆ギレするのはゆとり低学歴の特徴。
自分に理解出来ないことは、理解しようという姿勢すら示さないのも低学歴の特徴。

283 :nobodyさん:2010/05/02(日) 23:49:44 ID:???
なんというブーメラン

284 :nobodyさん:2010/05/03(月) 00:58:35 ID:???
>>279
お前、海賊版のソフトを平気な顔して使って
「ボッタクリ価格なのが悪い!」
「もともと買う気は無いからメーカーに損は無い!」
「むしろ俺が使う事で知名度が上がるだろ!」
とか言うタイプだろw

翻訳してやってますよとは思わないが、対価も支払う気が無い輩の言うことでは無いわなw
人それぞれで結論づけるならチラシの裏にでも書いてろよw


285 :nobodyさん:2010/05/03(月) 02:13:23 ID:???
草の生えた文章は読む気にならん

286 :nobodyさん:2010/05/03(月) 02:35:26 ID:???
>>285
お前、海賊版のソフトを平気な顔して使って
「ボッタクリ価格なのが悪い!」
「もともと買う気は無いからメーカーに損は無い!」
「むしろ俺が使う事で知名度が上がるだろ!」
とか言うタイプだろ

翻訳してやってますよとは思わないが、対価も支払う気が無い輩の言うことでは無いわな
人それぞれで結論づけるならチラシの裏にでも書いてろよ

287 :nobodyさん:2010/05/03(月) 03:11:31 ID:???
痛い>>276 >>279がいると聞いてやってきました。
API Docの英語くらい理解できる程度に勉強しておけば良かったな

288 :nobodyさん:2010/05/03(月) 08:26:50 ID:???
目次以外にも訳されてるところけっこうあるよね。
別に英語だけでも困らないけど、やっぱり日本語の方がありがたい。

289 :nobodyさん:2010/05/03(月) 18:41:49 ID:7alvR5zV
質問なんだけど、みんなサーバのメールソフト,MTAは何使ってる?
sendmail?postfix?qmail?
zendFWのサービスていうかzend_mailを使うにあたって、3つのうちで特に相性がいいものってあるのかな?
zend_mailの利用に関して注意点とかトラブルとかあった?
あったら教えてください。お願いします。

290 :nobodyさん:2010/05/03(月) 20:36:44 ID:???
互換性気にするなら、sendmailしかないでしょ。


291 :sage:2010/05/05(水) 00:26:42 ID:/pDwsnJ7
>>289 , 290
290を補足すると、 Zend_Mail_Transport_Smtp 及び Zend_Mail_Transport_Sendmail が
sendmail を前提にしており、他のMTAをカバーするためのクラスは、まだ用意できていなかったはずです

292 :nobodyさん:2010/05/06(木) 00:26:10 ID:j7c7uMQS
>>290,291
ありがとうございます

っていうか、マジで?sendmailしか対応できないの?
Sendmailってセキュリティ設定が難しくて敬遠されがちらしいし、
扱いやすいpostfixにMTAを切り替えてたんだけど、無駄なことしたのかな…orz
やっとインスコ成功したのに…
調べてみます、ありがとう


293 :292:2010/05/06(木) 00:45:43 ID:j7c7uMQS
一人で何度も聞いて申し訳ないのですが、zend_mailについてもう一つ質問です。

zend以前の問題かもしれないですが、ttp://blog.enjoitech.jp/article/201 を見ると、
自前のサーバ上のMTAを使わず、gmailを使ってメール送信できるそうですが、
・自前でMTAを利用する
・gmailで送信する
この二つのメリット/デメリットは何でしょうか?

思いつくのはgmailのダウン時の巻き添えくらいしかないのですがほかに何かありますか?

294 :nobodyさん:2010/05/06(木) 00:58:07 ID:???
>>292
>>っていうか、マジで?sendmailしか対応できないの?
SMTP経由すればMTA関係無いんじゃないか?

>>293
・自前でMTAを利用する
 自由に弄れる反面、コストもかかるし維持も面倒。

・gmailで送信する
 制限はあるが、コストはかからない。

作るサービス次第だと思うよ。


295 :nobodyさん:2010/05/06(木) 01:10:04 ID:???
>>290-292
sendmailつっても、この場合sendmailコマンドじゃなかったけ。
うちはpostfix使っているけど特に問題なく使えているよ。

296 :nobodyさん:2010/05/06(木) 16:26:28 ID:???
qmail も sendmail ラッパーあるみたいだし大丈夫だろ

297 :nobodyさん:2010/05/08(土) 04:09:56 ID:???
php自体勉強をはじめてまもない為他に何を伝えればいいのか良くわかっていないのですが

ZF 1.10.3を使っていて
public function sitemapAction(){
$this->_helper->layout->disableLayout();
echo $this->view->navigation()->sitemap();
}
としたところ
Fatal error: Zend_View_Exception: Encountered an invalid URL for Sitemap XML: "http://xn--********.jp/" in C:\xampplite\htdocs\xn--********.jp\library\Zend\View\Helper\Navigation\HelperAbstract.php on line 522
というエラーが発生してしまいます。

ドメインは日本語ドメインを利用しています。
上記エラーはwindows上ですがcoreserverや自宅のlinux環境でも同様のエラーが発生します。

$container = new Zend_Navigation(array($navi));
$navigation = $this->view->navigation();
$navigation->setContainer($container);
$this->view->assign( 'crumbs',$navigation->breadcrumbs()->setLinkLast(true)->setMinDepth(0));
$this->view->assign( 'menu' ,$navigation->menu());
は動作してるのでZend_Navigationの使い方は間違ってないと思うのですが
解決のヒントや、そもそもsitemapは日本語では動かない等あきらめたほうが良い等
アドバイスをいただけないでしょうか?

298 :nobodyさん:2010/05/09(日) 17:05:23 ID:???
Zend_Controller_Router_Route_Interfaceを実装して
オリジナルのRoute作ってるんだけど
assemble()ってどういうときに呼ばれるんだろうか?
今のところ何も実装しなくても希望の動作になってるから良いのだが。。

ちょっと調べた感じ、Redirectのときに使われるっぽい?
RouterでRedirect?よくわからん。。。

299 :nobodyさん:2010/05/10(月) 11:25:43 ID:???
Apache1.3で%7Fが使えなくて困ったときに使ったことあるな。
 配列→パス が assemble() で
 パス→配列 が match()
心臓部分なので実装しなければ(空実装?)使いもにならんはずだが。

300 :nobodyさん:2010/05/10(月) 13:39:42 ID:???
grep -r '>assemble' Zend/Controller/
個人的によく使うのはurlヘルパーかな

301 :nobodyさん:2010/05/10(月) 20:26:01 ID:???
>>299
>>300

なるほどthx

Router_Route_Hostnameの正規表現版みたいなのを
作ってルーティングしてるんだけど、今のところ
assemble(){ exit('hoge');}
って書いてても全然呼ばれないのだが。。。
urlヘルパーを使ってないから?

もともとJava-Spring使ってて最近PHP-Zendに移ってきたんだけど
Route_AbstractのgetVersion()をオーバーライドすると
match()のパラメータ型が変わったりするし、なんだかややこしいな。
ていうかRoute_Interfaceの全メソッドにコメントがないし…
インタフェースにコメントないAPIとか初めて見たよ。。
でも逆に勉強になるな。

302 :nobodyさん:2010/05/15(土) 16:46:48 ID:???
結局のところ、Zend_mailの文字化け対策はQdmailと併用するのがベストなの?
あと、Zend_mailで送信サーバをGoogleにして使うとき、送信者アドレスが
Gmailのアドレスになるのはどうしようもない?

303 :nobodyさん:2010/05/15(土) 16:47:51 ID:9enG3To7
あ、さげちゃった。 age

304 :nobodyさん:2010/05/15(土) 16:51:16 ID:9enG3To7
× Zend_mailで送信サーバをGoogleにして使うとき
○ Zend_mailで送信サーバをGmailサーバ指定して使うとき

の間違いでした、ごめん

305 :nobodyさん:2010/05/15(土) 16:56:30 ID:???
みんなの意見が聞きたいです。
私がPHPのシステムを構築するときは、管理画面とフロント画面があるシステムを作ることが多く、
モジュールの仕組みを自分なりに使って以下の様に実現しています。

■管理画面
http://localhost/webmaster/hoge/huga
=> webmasterモジュールのhogeコントローラのhugaアクション呼び出し

■フロント画面
http://localhost/hoge/huga
=> defaultモジュールのhogeコントローラのhugaアクション呼び出し

ディレクトリ構造は以下(抜粋)
application
|-modules
 |--default
 | |-controllers
 | |-models
 | |-views
 | --webmaster
   |-controllers
   |-models
   |-views

これだと、モデルがそれぞれのモジュール内に配置されることになり、よい面もあると思うのですが、
ほとんどのシステムで管理画面とフロント画面で同一のモデルを使うことが多いので、
webmasterモジュールの方にはmodelを実装しないで、defaultモジュールの方のmodelsにinclude_pathを通し、どのモジュールからもdefaultモジュールのmodelを呼び出すようにしています。

ただ、このやり方がどうしてもしっくりこないので、もう少しスマートなやり方を模索しているのですが、なかなかいい案が浮かびません。

みなさんは管理画面とフロント画面があるようなシステムを構築するときは、どんなやり方でやっていますか?

306 :nobodyさん:2010/05/16(日) 00:33:05 ID:9d3ZuTyk
>>305
ズバリそのやり方してる、俺もなんだかなぁって感じ。
違和感拭えないよね

307 :nobodyさん:2010/05/16(日) 00:41:06 ID:/nPzlLMd
>>305
application の直下(modules と同階層)に models を置いている。
共通のはそこに置く感じ。
Zend_Application 使ってれば application/models は autoload 対象になるしね。

308 :305:2010/05/16(日) 12:51:20 ID:???
>>306
>>307
ありがとうございました。
参考になりました。

Zend_Applicationは確かモジュール毎のiniファイルの記述方法がよくわからなくて、挫折した記憶があります。
もっとよく見てみようと思います。

309 :nobodyさん:2010/05/18(火) 10:33:48 ID:f5A4YuVy
>>308
307じゃないけど、Zend_Applicationに関係なく、
アプリケーション全体で共有する可能性のあるものは、
applicationの下に置くよ。
静的なリソースは別ね。

310 :nobodyさん:2010/05/26(水) 16:04:27 ID:???
ZendFrameworkってセキュリティはどうですか?
例えばgrep()でeval()やpreg_replace(eを使用)してユーザリクエストが混ざっているとか、$_FILESを組み込んだアップロード時に脆弱性が無いかとか、ヌルバイト&Dir遡り攻撃に対処しているかとかです
基本的なXSS、ScriptInsersion、SQLインジェクション、セッションハイジャック対策が全体的なコード中に施行されているのか知りたいです

ZFで構築後、また一から各セキュリティホールの確認とか大変だなぁ、と思いまして
FWの作者がZendなので最新バージョンはそういうのにほぼ対策をしているとは思うのですが、こういう攻撃には弱いというのがあったら教えていただきたいです

311 :nobodyさん:2010/05/26(水) 16:30:03 ID:???
FWレイヤーで対処すべきコードは基本的に対処されてる。
でも、個々のアプリケーションでもケアは必要。
ユーザリクエストにコマンドが混ざるとかはアプリケーションの仕様であってFWは感知すべきじゃない、
セッションハイジャックを防ぐための支援機能はあってもそれを使うかどうかはプロジェクト次第

セキュリティホールってのは開発者が責任を持って対処するべきなんじゃないの?
「大変だなぁ」って思うんなら、FWじゃなくて既存のプロダクトをカスタマイズして使う方がいいよ
FWに任せて自分は対処しないって風になると、いくらでも穴は開くからね

312 :nobodyさん:2010/05/27(木) 00:28:31 ID:???
セキュリティ対策をframeworkに頼ってる奴とか最悪すぎる

313 :nobodyさん:2010/05/27(木) 00:52:04 ID:???
ASP使いには多いけどなw

314 :nobodyさん:2010/05/28(金) 09:04:18 ID:???
>>312
セキュリティ対策をFWに頼っているわけではないんだが、例えば(まぁないとは思うが)どこかのコンポーネント内でhtmlspecialcharsとかが入っていない為セキュリティホールになったりしないかということ
そういう場合わざわざソース見て自分で書き直しとかめんどくさいんで
最低限のクォート処理とかそういう事です

315 :nobodyさん:2010/05/28(金) 13:53:13 ID:???
>>314
DB系であれば必要な箇所では適切にエスケープされるし、エスケープ方式も設定出来る。

htmlspecialcharsのように場合によっては不要なエスケープは強制されないので、
自分で適切に処理する必要がある。


316 :nobodyさん:2010/05/28(金) 20:32:15 ID:???
>>314
まぁ、言いたいことはわからないでもない。
残念ながら、"現段階では"ソースのチェックが必要な気がする。

HTML関連のViewヘルパーでのエスケープはされてるけど、
たとえば、文字コードの指定はロケールを見てるかどうかとか

Viewでエスケーパを指定できるようだけどオプションは?とか。

タグを自動育成するタイプのコンポーネントで穴がないかとか
その辺はやっぱり使うときにソースを確認した方がいいと思う。

317 :nobodyさん:2010/05/29(土) 03:27:50 ID:???
perlなんかだと、プログラマーが気を使っても
プレースフォルダ使っててもDBI/DBDに問題があったら…
今のとこであったことないけどHTML::FillInFormに問題があったら…

DBI,DBDの仕組みも大儀でいえばFWなのでそういった面では
FWにセキュリティホール対策は任せたい/任せてる部分てあるよね?

とここのところの流れを見てておもいました。


318 :nobodyさん:2010/05/30(日) 19:32:08 ID:???
へたれプログラマだと
ソースを確認しても信頼性の評価なんてできないから
自分が作るよりはましと考えて信じて使うしかない

319 :nobodyさん:2010/05/31(月) 13:36:10 ID:iVMHao47
>>299

>Apache1.3で%7Fが使えなくて困った

ZFと無関係な話ですが、どういう意味ですか?
昔作ったシステムが今もApache1.3で動いてるんで非常に心配です。
とりあえずurlencodeは使ってますが、それでも問題が起きることがあるんでしょうか?
知ってる人、教えてもらえないでしょうか?

320 :nobodyさん:2010/05/31(月) 15:28:20 ID:???
試せばいいのでは

321 :nobodyさん:2010/06/01(火) 10:23:47 ID:???
AllowEncodedSlashesでググレ

322 :319:2010/06/02(水) 13:22:49 ID:NqHn07VJ
>>321
ありがとうございました。
調べたところ問題なさそうでした。

323 :nobodyさん:2010/06/04(金) 15:51:23 ID:???

/index = IntexController->indexAction();
/hoge = IndexController->hogeAction();

とルートしたい場合、独自Routerを書かないと駄目でしょうか?
設定で対応出来るものでしょうか?

324 :nobodyさん:2010/06/04(金) 16:27:09 ID:???
staticでもregexでもrouteでもいける


325 :sage:2010/06/06(日) 10:36:36 ID:???
奈良県人と高野豆腐が大嫌い

326 :nobodyさん:2010/06/09(水) 16:15:06 ID:zdg5Ro52
お世話になります。

Zend_Session::rememberMe()
をログイン画面でログイン成功時に使用しています。

引数には1800秒を指定しているのですが、
この場合、ログイン成功してから1800秒間
セッションが有効になるのでしょうか?

ログイン後の次の画面で
Zend_Session::start();
を呼んで、ログインに成功しているかどうかを判断しているのですが、
Zend_Session::start();をコールしただけでは
セッションの生存期間はリセットされないのでしょうか?



327 :nobodyさん:2010/06/11(金) 12:51:52 ID:1eqyNkqt
過疎ってる?

328 :nobodyさん:2010/06/13(日) 04:57:57 ID:???
zfコマンドて皆使ってる?

329 :nobodyさん:2010/06/13(日) 05:25:30 ID:???
一番最初にディレクトリ構造作るときしか使ったことない。

330 :nobodyさん:2010/06/13(日) 07:21:39 ID:???
delete がないから使いづらい

331 :nobodyさん:2010/06/13(日) 07:57:06 ID:???
自分も最初にディレクトリ構造作っったものをコピペで済ましてるわ。

ローカル環境にPHPいれてZF最新版いれて・・・ってやる程恩恵あるのかなと疑問に思ったんだけど、
覚えなくてもいい感じかね。

332 :nobodyさん:2010/06/14(月) 20:34:32 ID:sDoDPQ6e
Zend_Service_Amazon_Itemってどう使ったら良いの?
恥ずかしいんだけど簡単に教えて欲しい、

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

この$queryと$resultsに対してどうしたら良いのか。。
Amazon/Item.phpの
public function __construct(DOMElement $dom)
をどう解釈したら良いのかわからない…

誰かアドバイス頼みます

333 :nobodyさん:2010/06/14(月) 22:17:48 ID:+e+bNGnA
>>332
$results を foreach で回す。

foreach ($result as $k => $v) {
var_dump($v);
}

334 :nobodyさん:2010/06/15(火) 10:40:13 ID:???
>>333
どうもありがとう、自己解決したよ
searchのオプションで'ResponseGroup' => 'Medium',指定しないと必要な情報が
そもそも取れないのを気づかなかった
アドバイスもサンキュー

335 :nobodyさん:2010/06/16(水) 16:18:46 ID:N9yq5s20
Zend_Dbのqueryメソッドでupdateしたときの返り値Zend_Db_Statementオブジェクトについて知りたい。
この返り値$objは $num = $obj -> rowCount(); でアップデートの対象件数を
調べられるってことだけど、これについて教えて欲しい。

具体的に言うと、 アップデートする既存データ(カラム情報)と上書きするデータが
全く変化がないとき、$num=0を返すんだけど、これってこれで正しいの?

まるで変更前のカラム情報と変更後のカラム情報を比較して、実際のupdateするしないを決めてるみたいな挙動だけど
純粋にWhere以下の条件をクリアしてるアップデート対象の件数を返すと思って
更新のエラー判別や件数判定しようと思ってたので困ってます。

ZendFWは1.10、DBはMysqlです。

336 :326:2010/06/16(水) 16:42:17 ID:XZSSnjmG
前回の質問で回答をいただけなかったのですが、
どなたかご存知の方はいらっしゃらないでしょうか。

337 :nobodyさん:2010/06/16(水) 16:44:39 ID:???
まさかこの一週間ずっと待ってたのか

338 :326:2010/06/17(木) 11:07:21 ID:???
>>337

色々と試行錯誤しながらも
皆様からのご意見をお待ちしておりました。

現状まだ解決しておりませんので
ご意見いただけると幸いです。

339 :nobodyさん:2010/06/17(木) 12:45:38 ID:???
ワロタww

340 :nobodyさん:2010/06/17(木) 14:18:36 ID:???
>>338
セッションの生存期間を延長したければ、もういちどrememberMeをコールしたほうがいいよ。

341 :326:2010/06/18(金) 00:18:45 ID:???
>>340

ご回答ありがとうございます。

できれば、一度ログインして
タイムアウトもしくはログアウトをするまでは
同じセッションIDを使用したいと考えています。

rememberMeを呼ぶとセッションIDが書き換わるようなので
ちょっと困っています。

同じセッション間でユーザがどのように
ページを遷移していったかログをとりたいのですが、
その時に識別するキーにセッションIDを使用しています。

セッションIDを使うのではなく、別の一意のIDを用意するべきでしょうか?

342 :nobodyさん:2010/06/18(金) 01:06:33 ID:???
なんで小出しにしたの

343 :nobodyさん:2010/06/18(金) 05:58:12 ID:???
>>341

> セッションIDを使うのではなく、別の一意のIDを用意するべきでしょうか?

はい


344 :nobodyさん:2010/06/18(金) 06:24:53 ID:???
セッションハイジャックも考えて内部で別の値で保持せよ
という神の啓示セヨ


345 :326:2010/06/19(土) 12:24:02 ID:???
>>343 344

ありがとうございます。

それではセッションID以外の一意のキーを用意するようにします。

rememberMeもあまり多用すると、パフォーマンスに影響するという
情報もありましたので、要所要所で使用していきたいと思います。


346 :nobodyさん:2010/06/19(土) 12:46:56 ID:???
rememberMe()ってクッキーの有効期限を操作するものだと思ってた。

347 :nobodyさん:2010/06/19(土) 16:33:15 ID:MplSKe7W
Zend_dbのトランザクション処理について質問。
DBがMysqlのとき、トランザクションでcommit()メソッドを使って処理が成功した場合
$db->query($q1);
$db->query($q2);
$rs = $db->commit();
の返り値$rsをvar_dump($rs)したら、object(Zend_Db_Adapter_Pdo_Mysql)なんだけど、
このオブジェクトからエラーコードや処理した行数を取得するメソッドってないのかな?
エラーだけならtry~catchの分岐で捕まえられるけど、行数を取得するにはどうしたらいいの?

非トランザクション処理で返ってくるZend_Db_Statement_Mysqliオブジェクトの場合、
rowCount()とかerrorCode()とかのメソッドを利用してクエリ結果を簡単に確認出来るけど
トランザクション時の方はわからない。
どなたかアドバイスお願いします。

348 :nobodyさん:2010/06/19(土) 22:51:45 ID:???
>>347
トランザクションの時も同じだよ。

commit()はあくまで処理を確定する為のメソッド、
実際に処理が行われるのはquery()メソッドなので、
その戻り値(Zend_Db_Statement_Mysqli)で処理結果を取得すればいい。

349 :nobodyさん:2010/06/20(日) 00:19:42 ID:???
>>348
おお、レスありがとう。じゃあ、トランザクション処理としてfor文で
クエリ($rs=$db->query($hoge))を10回繰り返すとしたら、
$n = $rs->rowCount(); とか $rs->errorCode();とかの処理も
10回for文の中で繰り返さなきゃいけないわけだよね
しょうがないけど、効率悪いような… ともかくありがとう

350 :nobodyさん:2010/06/20(日) 00:38:46 ID:???
>>349
それはZendじゃなくてSQLの仕様だよ
10回クエリを投げるなら、10回期待した結果が得られたかどうかキチンと判定しないと、
commitもしくはrollbackが出来ないだろうさ

351 :nobodyさん:2010/06/20(日) 01:13:52 ID:???
commitしたってことは各回のクエリに失敗は無かったってことでしょ?
たとえば5回目でinsertするカラムの数と値の数があわなかったらエラーで
rollbackされるわけだよね?
逆に言えば複数回のクエリ(トランザクション利用)の「全体としての成功/失敗」程度しか
確認が必要じゃない時は
commitできたときはtrueをreturn、rollbackのときはfalseなりエラーメッセージをreturnで
検証完了と割り切っちゃって良いのかな

352 :nobodyさん:2010/06/20(日) 02:11:43 ID:???
>>351
>commitしたってことは各回のクエリに失敗は無かったってことでしょ?
>たとえば5回目でinsertするカラムの数と値の数があわなかったらエラーで
>rollbackされるわけだよね?

これは逆じゃない?
commitする前にクエリが正常に完了したかどうかを自前で判断して、
OKであればcommit、NGであればrollbackを行うべきかと・・・

SQLクエリ自体が通ってしまえば、commitは出来てしまうので、
commitが出来た=全体として成功って判断は危険だと思うよ。


353 :nobodyさん:2010/06/20(日) 02:22:43 ID:???
こんな時間に申し訳ないです
トランザクションの認識自体がオカシイ、Zend以前の問題ぽいですね
ttp://pluto-blog.blog.so-net.ne.jp/2007-01-15
こんなサイト見つけて、この考え方で良いのかなって思ったんだけど…

354 :nobodyさん:2010/06/20(日) 03:14:42 ID:???
>>353
そのサイトの超絶簡単サンプル1だね。
サンプルでは「SQLクエリにエラーがなかった場合、処理は成功」としているけど、
例えば「行を削除するが、テーブルの行が5件未満になってはいけない」みたいな条件がある場合、
単にSQLクエリが成功したかどうかで判断するのは難しいよね。

例)DELETE句自体に問題は無いのでcommit()出来てしまう。

$db->beginTransaction();
try {
 $db->query("DELETE FROM tableName");
 $db->commit();
} catch (Exception $e) {
 $db->rollBack();
}

これではマズイのでcommit()を行う前に、
自前でDELETE後の行数を確認する必要があるわけだ。

355 :nobodyさん:2010/06/20(日) 18:48:10 ID:???
>>351
空港でチケット止めたり、ICカードシステムが止まるような仕様だよそれ。
普段はうまく行ってるけど、実はバグってて見えないだけ、を隠蔽してる。

356 :351:2010/06/20(日) 23:49:48 ID:???
>>354,355
どうもありがとう。正直すんなり理解出来ないんですよね、トランザクション勉強し直しかなこりゃ。。
>「行を削除するが、テーブルの行が5件未満になってはいけない」みたいな条件がある場合
…というような条件は無いんだけど、ループするクエリ処理をその都度検証すべしってことは

try{
 $success = 0;
 for($i=0;$i<$loop;$i++){
  $rs = $db->query(insert 〜);
  //以下で登録クエリの成功を確認
  $chk1 = $rs->rowCount();
  $chk2 = $rs->errorCode();
  if($chk1==1 && $chk2=="00000")$success++;
 }

 if($success ==$loop){
  $db->commit();
 }else{
  //ループのどこかで失敗してる
  $db->rollBack();
 }
} catch (Exception $e) {
 $db->rollBack();
}

こんな感じでいいんですかね?
5件以下になってはいけない云々みたいな条件が無い時でもこういう処理が必要なら
トランザクションの説明全部にそう書いてて欲しかったなぁ… ずっと誤解してたよ

357 :nobodyさん:2010/06/21(月) 00:03:17 ID:???
>356
途中でエラーが出た場合、ループを抜けないと無駄なクエリを発行する事になってしまうので、
ループ部分はこんな感じでもいいと思う。
for($i=0;$i<$loop;$i++){
if($db->query(insert 〜)->rowCount() != 1)
throw new Exception('クエリの結果がおかしいです><');
}

>トランザクション
簡易カートシステムを設計してみると理解し易いかもよ。
1回の処理で、在庫確認、発注処理、決済処理が発生して、
1つでも失敗した場合はrollbackを行う。みたいな。

358 :nobodyさん:2010/06/21(月) 00:14:33 ID:???
複数のクエリを不可分に実行しないと全体としての整合性が保てないときに、
その不可分なクエリをまとめるのがトランザクションで、
含まれるクエリ全部が成功するか、あるいは何もしなかったことにするか、
どっちかの結果しかない。(中途半端な成功はデータの不整合になる)

特に指定しなければ、1つのクエリが1つのトランザクションという扱いになってる。

というのがオイラの理解。

359 :351:2010/06/21(月) 00:14:59 ID:???
>>357
おお、素早いレスありがとう。
その例だとわかりやすいし、よく銀行の出金〜入金を例にしてるけど
そういうサンプルでも出勤処理と入金処理それぞれのクエリ文2つ並べてるだけで、
それぞれの結果をチェックしてるのみたことないよ
だからcommit処理ってエラーチェック自体したうえでcommitしてるものだと思ってた

まあZendFWと関係ないレベルで申し訳ないです。
勉強になりました。ありがとう。

360 :351:2010/06/21(月) 00:16:48 ID:???
>>358
こちらもありがとう。
もう少しトランザクション調べるよ。ほんとにありがとう。

361 :nobodyさん:2010/06/22(火) 16:44:11 ID:???
>>359
いや、つーか惜しかったんだよ。
commitが成功するか、否かじゃなくて例えば100件個別にインサートするのに
100回実行した後で、インサート件数が100件じゃなかったらrollbackする、
つうまとめてチェックなら一般的に用いられてる。それでも失敗した件数
(出来ればとれが失敗したか)をユーザに知らせる親切設計にするんだけどね。

まぁTwo phase commit とかsave point経験すると、この辺は呼吸するみたいに
当然の仕様になるんだが、、、金融系だと1円のミスでも塵積で賠償問題に
なっちゃうからね。

362 :nobodyさん:2010/06/22(火) 16:45:59 ID:???
なんだこいつw

363 :nobodyさん:2010/06/22(火) 17:55:44 ID:???
最近PostgreSQLの新機能覚えて言いたくて仕方ないんだろ

364 :nobodyさん:2010/06/22(火) 20:27:27 ID:???
は? ツーフェーズなんて10年の昔からあるだろ。
お前ら程度だとまっさきにバグるだろうがな。

365 :nobodyさん:2010/06/22(火) 20:34:28 ID:???
ここPHPのWebフレームワークのスレだよね?

366 :nobodyさん:2010/06/22(火) 20:35:54 ID:???
>金融系だと1円のミスでも塵積で

もうこの一言で程度が知れるなあ
気の毒に

367 :nobodyさん:2010/06/22(火) 20:35:58 ID:???
じゃあDB抽象化すんなよ

368 :nobodyさん:2010/06/22(火) 20:41:24 ID:???
PostgreSQLじゃなきゃ最近基本情報の勉強でもしたんだろたぶん
じゃないとこの流れでいきなり2相コミットの話なんて出ようがない

369 :nobodyさん:2010/06/22(火) 20:46:10 ID:???
SAVE POINT使おうが使うまいが全然関係ない話じゃん
rollbackもしくはcommitしたあとの結果の話なんだから
2PhaseCommitに至っては全く持って話と関係ないし

370 :nobodyさん:2010/06/23(水) 05:46:35 ID:???
出来ないPGの特徴
議題が読み取れないのに、聞いてもいない自分論を喜々として語る。
その内容も大抵は誰の得にもならない、意図不明な物が多い。

371 :nobodyさん:2010/06/23(水) 08:53:23 ID:???
今や銀行やクレジットのシステムもZend_DBが使われてるんですね!

372 :nobodyさん:2010/06/23(水) 10:39:45 ID:???
1.10.6

373 :nobodyさん:2010/06/24(木) 08:49:30 ID:j4+/2c3l
zendで日次batch処理をしたいのですが、検索に出てきませんでした。
bootstrupに登録したdbの情報も使うので、単純にapplication/batchを作ってスクリプトを再生して起動しても、
bootstrupを通らないので、うまくDBなども使えません。
コントローラーを使うかのようにバッチを使いたいです。
やり方が記載されているページなど有りましたらおしえてほしいです。


374 :nobodyさん:2010/06/24(木) 09:11:32 ID:???
>>373
バッチ用のBootstrap&Dispatcherを作ればいいと思うよ。

面倒なのであればバッチからWEB呼び出しちゃえば?
file_get_contents("http://xxxxx/xxx");

375 :nobodyさん:2010/06/25(金) 01:30:49 ID:AQc08b3W
ZFPlanetとWebf_Controller_Router_Cli


376 :nobodyさん:2010/06/27(日) 07:11:07 ID:???
Saasesみたいな安くて使い勝手がいいVPSが出てきた今、
無理してPHP使う理由なくなってきたなぁ

377 :nobodyさん:2010/06/27(日) 10:36:41 ID:???
えっ

378 :nobodyさん:2010/06/28(月) 02:58:43 ID:???
えっ

379 :nobodyさん:2010/06/28(月) 13:39:35 ID:???
無理してPHP使うってどういう場面だよw
PHPしか動かないレンタルサーバなんてまず滅多にないだろ

380 :nobodyさん:2010/06/28(月) 13:48:03 ID:???
俺はZend Frameworkを使いたいからPHPを使ってるけど、PHP自体にはあんまり興味ない。

381 :nobodyさん:2010/06/28(月) 15:07:53 ID:???
何でZendFramework使いたいの?
PHPの中では便利だけど、PHP以外でなら選択肢は山ほどあるだろうに。

382 :nobodyさん:2010/06/28(月) 15:18:21 ID:???
どんな便利な選択肢があるんだ例えば
Railsとか死ぬほどクソだったわ

383 :nobodyさん:2010/06/28(月) 15:20:21 ID:???
1.Kohana
2.SAStruts
3.Zend
4.Catalyst
5.Click

って感じだな俺の評価は
RubyやPythonはそもそも言語的に微妙
やっぱPerl、PHP、Javaでまとまっちゃうわ

384 :nobodyさん:2010/06/29(火) 10:12:03 ID:???
>>383
PHPしかつかったことないWebプログラマなんだけど
RubyやPythonの方が言語的に微妙って
どの辺からそう感じるんだろうか
自分がPHP使ってて苛々することが多い上に
RubyやPythonの評価見てると逆だと思ってた


385 :nobodyさん:2010/06/29(火) 14:29:24 ID:???
商売として微妙という意味じゃないかな

OOP流行りだからPHPは言わずもがな使い辛いとなる
ただ言語仕様守らない人にとっては何使っても一緒

386 :nobodyさん:2010/06/29(火) 18:46:44 ID:???
RubyはPythonってのはマイナーだけにそれが好きで使ってる人しかいないから評価が高いだけ
好みに合わなくても無理矢理使わされる人が殆どいないからいい評判ばかり聞こえてくる

387 :nobodyさん:2010/06/29(火) 19:47:06 ID:???
前は
Java(Servlet)+SpringMVC+Velocity+Jakartaいろいろ
を組み合わせてやってたけど、ちょっとしたサイトつくるときに
レンタルサーバで動かせないから
PHP+ZendFrameworkに移行したんだけど
上記の組み合わせとほぼ同じ感じで出来てるから満足してる。

388 :nobodyさん:2010/06/29(火) 19:51:06 ID:???
あ、でもパフォーマンスはやっぱりJavaServletのほうがいいかな。
コンテナ起動中はApplicationスコープに変数保持してられるし、
PHPでもmemcachedとか使えばいいんだろうけど、手軽さが全然ちがう。

389 :nobodyさん:2010/06/29(火) 19:53:43 ID:???
というわけで、常に専鯖使える環境だったらJava使うかなあ。
Apacheプロジェクトで良質なFW・ライブラリが選り取り見取りだし。

390 :nobodyさん:2010/06/30(水) 02:14:21 ID:???
>>386
勘違い乙。
だいたいRubyやPython使ってる連中は他言語を使ってる。
ちゃんとつかって>>383みたいな評価するのは超少数派。
というか使ってるかどうかすら怪しい。


391 :nobodyさん:2010/06/30(水) 14:54:36 ID:???
え?

392 :nobodyさん:2010/06/30(水) 15:32:22 ID:???
>>390
勘違い乙。 返しw

393 :nobodyさん:2010/06/30(水) 15:52:01 ID:???
個人的な使い心地で言えば、
手軽さと利便性はPHP、言語仕様としてはRubyを評価するかな。


PHPの気持ち悪い点

・namespaceの区切りがバックスラッシュ
・無理矢理っぽい無名関数
・try catchにfinalyが無い
・goto文
・引数の型チェックが中途半端(stringとか指定出来ない)


394 :nobodyさん:2010/06/30(水) 17:07:27 ID:???
Pythonには勝てん。

395 :nobodyさん:2010/06/30(水) 17:22:46 ID:???
気持ち悪さで言うと一番気持ち悪いのはRubyだろ。

396 :nobodyさん:2010/06/30(水) 17:44:40 ID:???
Perlの事も(ry

397 :nobodyさん:2010/06/30(水) 17:58:24 ID:???
RubyはDelphiっぽいだけで気持ち悪くはない
気持ち悪いけど

398 :nobodyさん:2010/06/30(水) 20:17:05 ID:???
Javaは気持ち悪さはないけど面倒くさい

ていうかここZFスレね

399 :sage:2010/07/03(土) 00:16:16 ID:???
1回だけPHP全般的なコト書いちゃうけれど

try catch の finaly は確かに欲しいね。
Ruby の入門書を見て便利だなと思ったのは、各文字列オブジェクトごとに文字エンコードをプロパティーとして指定できるところ。

400 :nobodyさん:2010/07/03(土) 05:10:13 ID:???
>>393
>>399

同じtypo

401 :nobodyさん:2010/07/04(日) 16:17:02 ID:???
PHPのtry catchってpythonみたいに既存のどんなerrorでも捕まえられるわけじゃないのね

402 :nobodyさん:2010/07/04(日) 20:37:45 ID:???
errorを捕まえるためのものじゃないからね

403 :nobodyさん:2010/07/04(日) 20:38:37 ID:???
てか、ZFと関係ないしw
PHPの初心者スレか、自分のブログに書いたらいいよ

404 :nobodyさん:2010/07/04(日) 22:41:57 ID:???
ZF使って1つのサーバーでそれぞれ独立したサイトを
2つ以上立てようとするとキモくなる、なんで?

405 :nobodyさん:2010/07/04(日) 23:15:04 ID:???
ZFは君を映す鏡

406 :nobodyさん:2010/07/04(日) 23:47:14 ID:???
俺がZFで作ったサイトになら抱かれてもいいと思えるのはそういう事だったか

407 :nobodyさん:2010/07/05(月) 09:38:39 ID:???
>>404

うちはVirtualHost別にmodule振り分けるRouter自作してやってるよ。
いい感じに疎結合になるし、管理も楽。

408 :nobodyさん:2010/07/05(月) 10:20:06 ID:???
host名で振り分けるルートはもともとあるけど、Routerを自作する理由はなに?

409 :nobodyさん:2010/07/05(月) 13:01:04 ID:???
>>408
Zend_Controller_Router_Route_Hostnameだと、

:hoge.fuga.com

とかやると:hogeが省略出来ないとか、
あと他にも理由あったような気がするけど
正規表現でHostnameマッチできるRouter自作した。


410 :nobodyさん:2010/07/05(月) 13:03:27 ID:???
あ、あとmuduleにRouteされたときだけ
module用のPluginが登録されるようにした。

411 :nobodyさん:2010/07/05(月) 13:10:07 ID:???
>>409
どのくらい複雑なHOST名にしてるのか知らないけど、
Hostnameでも複数ルートを登録できるから、その程度の理由なら自作しなくてもいいな。
他にも理由があったと言う他を思い出したら教えて

>>410はプラグインとZend_Applicationで処理するのが常道だけど、
Routerに書いてんの?Routerでプラグイン登録?まぁ、いいけど。

412 :nobodyさん:2010/07/05(月) 14:56:06 ID:???
>>411
あ、RouterでPlugin登録してるわけじゃないよ。

Module別Bootstrapはあるけど、
Module別Pluginが欲しかったから
Routeされた段階で遅延登録されるようにした。

Host数=Module数は30個くらい?で、
その中でもさらにサブドメイン(?)をパラメータにして
いろいろやってた。

ちなみに今のバージョンでどうなのかは知らない。。

413 :nobodyさん:2010/07/05(月) 15:00:43 ID:???
あとroutesの設定ファイルがXMLで
route要素もextendsとか多用してて複雑になってたから
標準のRoute_Hostnameだと
対応できなかったから自作したんだっけかな?

414 :nobodyさん:2010/07/05(月) 15:05:19 ID:???
そうだ思い出してきた。

まず正規表現でHostnameからパラメータ取得したかったのと、
その際にPunycodeをデコードしたかったんだった。

415 :nobodyさん:2010/07/05(月) 15:48:35 ID:???
なるほどねー
おれだったら、正規表現はmod_rewriteで済ませて、
デコードはルーティングに入る前にプラグイン処理だな。
もしくは、RouterじゃなくてRouteで。
まぁ、Routerでもいけるだろうけど。

416 :nobodyさん:2010/07/05(月) 17:46:39 ID:???
ぷに〜コードのデコードめんどくさくてフレームワーク放棄した俺とは大違いだ(笑)

417 :nobodyさん:2010/07/13(火) 22:41:12 ID:???
よくPlugin作ってdispatchLoopStartupに認証や共通処理をうんぬんって見るけどさ、
画像のリンクが切れてるだけでdispatchLoopStartup何回も走るとかうぜぇ・・


418 :nobodyさん:2010/07/14(水) 00:21:27 ID:???
「画像のリンクが切れてるだけ」と事前に判別出来るなら、
dispatchする前に別処理へ移行すればいいだけの話だ

419 :nobodyさん:2010/07/14(水) 05:41:59 ID:???
>>417
mod_rewriteで対処でしょ jk

420 :nobodyさん:2010/07/16(金) 15:47:04 ID:???
Zend_FormでsymfonyにあたるsfFormのsetNameFormatってどうやったらいいの?

421 :nobodyさん:2010/07/22(木) 09:02:40 ID:8xnHx2ro
初心者です。
ネットとかみてZend_Fromを勉強中ですが、デコレーターとかのファイルを
どこに置いていますか?
Contoroller内?????

422 :nobodyさん:2010/07/23(金) 14:07:23 ID:???
フィルタじゃね

423 :nobodyさん:2010/07/30(金) 23:46:03 ID:???
なぜか1.10.7がダウンロードできた

125 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)