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

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

Zend Framework Part5

1 :nobodyさん:2011/02/11(金) 04:04:29 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 Part4
http://hibari.2ch.net/test/read.cgi/php/1265721684/

2 :nobodyさん:2011/02/11(金) 11:46:28 ID:NxedcTRO
AKB48のパンチラ画像!!!
http://ameblo.jp/rusenu2/

3 :nobodyさん:2011/02/11(金) 16:57:42 ID:???
これお願いします
ttp://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1255175377

4 :nobodyさん:2011/02/11(金) 19:03:42 ID:???
マルチ乙

5 :nobodyさん:2011/02/11(金) 20:58:23 ID:???
知恵袋の回答者の質が悪いからしょうがないんです

6 :nobodyさん:2011/02/12(土) 09:57:51 ID:???
smarty公式サイトで紹介されてたsmarty+ZFの連携
http://www.gediminasm.org/article/smarty-3-extension-for-zend-framework

7 :nobodyさん:2011/02/12(土) 10:24:21 ID:???
そもそも、なんでPHPにSmarty見たいのが必要なのか分からない

8 :nobodyさん:2011/02/12(土) 10:37:30 ID:???
ずーっとPHP使い続けるんならいいけど、そのうち他の言語に移るんだからテンプレート使っててもいいじゃん

9 :nobodyさん:2011/02/14(月) 09:56:53 ID:???
楽になるしね。


10 :nobodyさん:2011/02/14(月) 19:59:00 ID:???
前スレの993へ

ドキュメントルートにapplicationを作る場合
.htaccessにDeny from allを書いてapplicationに入れれば問題ない


11 :nobodyさん:2011/02/16(水) 09:09:20 ID:???
Zend_Form_Element_Captchaについて教えてください。

FormにZend_Form_Element_CaptchaをaddElementsしてビュースクリプトに、
<?php echo $this->form->getElement('captcha')->render(); ?>
とすると問題なく表示されます。

しかし、キャプチャイメージだけレンダリングしようと、
<?php echo $this->form->getElement('captcha')->getCaptcha()->render(); ?>

とすると、画像が表示されません。
一つ前に生成したファイル名が指定されてしまっているようです。

今生成したキャプチャイメージにするにはどうしたらいいでしょうか?



12 :nobodyさん:2011/02/16(水) 13:05:05 ID:???
>>8
他の言語のFWでもsmartyが使えるならいいけど、他は他で独自テンプレじゃん。
無意味。

13 :nobodyさん:2011/02/16(水) 23:08:56 ID:???
ZFスレって盛り上がらないね
ひょっとしてZFはオワコン?

14 :nobodyさん:2011/02/17(木) 02:30:05 ID:???
Zend_Db_Selectだと__toStriong()で実行したSQLを取得できますが、
insertやupdateで同じように実行したSQLを確認する方法ありませんか?


15 :nobodyさん:2011/02/17(木) 02:40:00 ID:???
>>11
使ったことないし、テストもしてないんで適当だけど。
Captcha画像生成用のアクション用意してimgタグで表示させてみたら?

>>14
http://framework.zend.com/manual/ja/zend.db.profiler.html
FirebugとFirePHPの組み合わせがおすすめ、実行時間も取れるのですごく便利

16 :nobodyさん:2011/02/17(木) 20:02:24 ID:???
IEで使いたい

17 :14:2011/02/18(金) 00:41:44 ID:???
>>15
おー、こんな便利なクラスがあるのか、ありがとう

18 :nobodyさん:2011/02/18(金) 02:24:32 ID:l3rqfUmy
Zend_sessionで、$testSpace->setExpirationSeconds(300, 'accept_answer'); って感じに
任意のセッションオブジェクト全体とかその中の特定の変数に有効期限持たせられるけど、
これってブラウザ閉じてもexpireは実行されるんだよね?



19 :nobodyさん:2011/02/22(火) 09:24:21.92 ID:???
EclipseでPDTでのPHPのように、ZFの関数などを補完してくれるプラグインだとかテンプレートライブラリとか無いでしょうか?
ちょっとZend_Xxxxx_Xxxxxとか打つのが手間がかかり、後、毎回打ち間違うのも避けたいので

ネットで検索しても出てこないような気がします

20 :nobodyさん:2011/02/22(火) 10:43:45.59 ID:???
レイアウトスクリプトのビュー変数を設定するのはどうすればいいのでしょうか>

class fooController extends Zend_Controller_Action {
  public function indexAction(){
    $this->_helper->layout->assign( 'header',$this->view->render('header.phtml'));
    $this->_helper->layout->assign( 'view_var','ああああ');
}

と、レイアウトとビュー変数を設定しているのですが、

header.phtmlの中で

<div><?php echo $this->layout()->view_var; ?></div>
としてもなにも表示されません。
var_dump()はnullです。

どのようにレイアウトスクリプトにビュー変数を渡せばいいのでしょうか?



21 :nobodyさん:2011/02/22(火) 10:58:47.07 ID:???
20です。
勘違いしてました。解決しました。



22 :nobodyさん:2011/02/22(火) 12:37:24.13 ID:???
>>19
あらかじめZend Frameworkのライブラリを解凍しておいて、
PHPプロジェクトを作成する際に、そのライブラリの場所をinclude path指定すればOK
(プロジェクト作成後にinclude path設定してもいい)

23 :nobodyさん:2011/02/23(水) 14:48:11.97 ID:Ql2fJWu6
お世話になります。

MySQLにレコードを登録するプログラムを組んでいます。

ブラウザからアクセスしてプログラムを実行すると
ちゃんとDBに登録されるプログラムを
コマンドラインで実行するとエラーが出てしまいます。

エラーには
SQLSTATE[HY000]: General error: 2053
と表示されます。

その他にも
Zend_Db_Statement_Pdo->fetchAll()
でエラーが発生しているかのように出ておりました。

エラーを解消するにはどの様にすればよろしいでしょうか。
よろしくお願い致します。



24 :nobodyさん:2011/02/23(水) 16:05:34.25 ID:???
>>19
俺もそれ思って、Zend Studioの評価版をダウンロードしてテンプレート、コードアシスト部分だけエクスポートしようと思ったんだけど
どうやればいいのか分からなかった
設定欄には何も表示されないんで
誰かZend StudioからEclipseに入れる方法知りませんか?


>>22
ん?どういう事?
include pathってのが分からないんですが(PHPではなくEclipseのinclude pathですよね?)具体的にはどうするのですか?

25 :nobodyさん:2011/02/23(水) 22:23:58.43 ID:???
>>24
PDTのバージョンは何?

PHPのプロジェクトを右クリックして、ビルドパス→ソースのリンクでZFが入っているパスを指定すれば補完されるようになるよ。
プロジェクト内にZFディレクトリが存在してるなら、そのディレクトリを右クリック→ビルドパス→ソースフォルダとして使用するを選択すればOK。


26 :nobodyさん:2011/02/24(木) 00:00:41.92 ID:???
>>25
ありがとう
知らなかった
それならPEARなんかも出来そうですね
バージョンは最新版です

27 :nobodyさん:2011/02/25(金) 01:45:29.75 ID:???
>>24
既存のEclipse環境があって、そこにPDT部分を統合したい、という話だったら使えない手だけれど、
そうじゃなかったら、
試用期限切れのままこっそり使う、という手もある。

28 :nobodyさん:2011/02/25(金) 11:31:57.12 ID:???
>>27
笑w
アレって期限切れでも使用できるの?
PDTとの違いで、目立ったものは自分は感じられなかったんだけど
日本語化対応もいまいちだったし、Pleiades入れればいいのかもしれないけど、動作がおかしくなったりしたら怖いし
Subversiveとか、Aptanaとかも入れられるんですかね?

29 :nobodyさん:2011/02/26(土) 22:05:02.28 ID:???
>>23
パスが通ってない。多分php.iniが見えてないのが原因なので
php -c [iniのパス]
とすれば大概いける。ダメなら環境変数で頑張る。


30 :nobodyさん:2011/02/27(日) 00:15:52.13 ID:???
期限来れたらPDTと同等品

31 :nobodyさん:2011/02/27(日) 00:16:49.98 ID:???
こっそりというか普通に使っておk

32 :nobodyさん:2011/02/27(日) 01:21:09.94 ID:???
>>30
あっ、PDTと同等になるんですか・・・
となると、ZFプロジェクトなんかが作成できなくなったり、ZF関数のコードアシストが無くなるんですね?


33 :nobodyさん:2011/02/27(日) 07:09:51.45 ID:???
期限が来ると有償部分のプラグインがつかえなくなる。
日本語はPleiadesじゃない方のやつがいいと思う。

34 :nobodyさん:2011/02/27(日) 22:00:08.09 ID:???
日本はZF流行らないね

35 :nobodyさん:2011/02/28(月) 09:18:49.69 ID:???
ZF理解できるようなレベルの人間が少ないだけだと思おう
世の中のPHP使ってるって人もPHP自体もたいして出来ないんじゃない?


36 :nobodyさん:2011/02/28(月) 21:43:08.37 ID:???
ウェブデザの片手間言語から脱出してないからな。
perlで組むのは無理過ぎるからphpってだけ。フォーム投稿とかcgiレベルのphpが多いし。
db遣う以前のレベル。

37 :nobodyさん:2011/02/28(月) 23:05:25.81 ID:???
perlだと何かいいことあるのか?

38 :nobodyさん:2011/02/28(月) 23:35:36.16 ID:???
CGIと言えばperlみたいな時代があったから
使える人間が多いってだけで
別にperlが優れてるというわけじゃないでそ

39 :nobodyさん:2011/03/03(木) 01:18:32.92 ID:???
むしろPerlは老害の使いたがる言語

40 :nobodyさん:2011/03/03(木) 20:26:10.54 ID:1KzlvY5t
zend使ってたら、内部でPCREの正規表現使ってるらしくて

PHP Notice: Sorry, your PCRE extension does not support UTF8 which is needed for the I18N
core in /usr/lib/php/ZendFramework/library/Zend/Locale/Format.php on line 769

というエラーが出たんだけど、どう対処したら良いんでしょうか?
zend_mailの処理から発生したエラーのようなんだけど…

41 :nobodyさん:2011/03/03(木) 20:30:28.44 ID:???
>your PCRE extension does not support UTF8

42 :nobodyさん:2011/03/03(木) 20:36:24.08 ID:1KzlvY5t
あと、zend_mailって、送信処理の実行結果(成功/失敗)を確認できないのかな?
sendメソッドの返り値から判別する方法とか、判別用のメソッドとかってない?

43 :nobodyさん:2011/03/03(木) 20:41:31.02 ID:???
なんで人をなめた口調になってるの?

44 :nobodyさん:2011/03/03(木) 20:41:51.45 ID:???
>>41
ありがとう。
やっぱりzendというよりPHPの方になんかインストールしたりして対応するしかないんだ?
うーん、やってみる。ありがとう

45 :nobodyさん:2011/03/03(木) 23:32:22.64 ID:???
>>40
http://www.mycurse.net/tag/pcre/


46 :nobodyさん:2011/03/03(木) 23:38:09.81 ID:???
Zend_Log_Writer_Streamがfopenのあとflockしてないんだが
おかげでログが消えて酷い目にあった
これZend_Logのバグだろ

47 :nobodyさん:2011/03/03(木) 23:57:49.13 ID:???
>>45
ありがとうございます。読んでみます、ありがとう。

48 :nobodyさん:2011/03/04(金) 07:36:37.18 ID:???
>>46
追加モードでアトミックに書き込みできない場合は
ストリームを自分でロックしてからコンストラクタに渡せという設計じゃないの
と言うかウェブアプリでログファイルを排他ロックしたらパフォーマンス糞落ちるんじゃね?

49 :nobodyさん:2011/03/04(金) 11:11:28.06 ID:???
flock するにしても fopen の後じゃなくって fwrite の直前だろ

しかし flock しないせいでログが消えたってどんな環境なんだ?
出力が混ざるとかいうならわかるんだが。

50 :nobodyさん:2011/03/04(金) 16:41:13.23 ID:???
ZendDbでテーブルの情報を引き出したいんだけど、どうすればいいかわかりません。
_metadataはどこから取れますか?

51 :nobodyさん:2011/03/04(金) 16:56:39.24 ID:???
Zend_Db_Table_Abstract クラスのinfo()メソッド

52 :nobodyさん:2011/03/05(土) 15:36:44.44 ID:???
馬鹿にはzfは無理。

53 :nobodyさん:2011/03/05(土) 19:56:41.77 ID:???
ttp://codeigniter.jp/user_guide_ja/general/models.html
MVCでCodeIgniterのモデルみたいにファイルにデータを書いて利用したいんですが
この場合はどのようにやるのでしょうか?
今はコントローラにデータを書いてます


54 :nobodyさん:2011/03/05(土) 21:31:17.38 ID:???
Zend_DbでSQLエラーが出ると例外になるんだけど、
そこで$exception->getMessage()
ってするとエラーが発生したSQLが取得できます。
そこまではいいんですが、たとえばinsertでエラーが出ると、getMessageの内容が
INSERT INTO "hoge" ("col0", *"col1") VALUES (:col0, :col1)
とかになってて、「:col0」「:col1」に具体的にどんな値がバインドされてたかがわかりません。
ここまで取得する方法ありませんか?

getTraceして気合いで遡っていくしかない?

55 :nobodyさん:2011/03/05(土) 21:41:42.18 ID:???
タメ口

56 :nobodyさん:2011/03/05(土) 23:50:42.41 ID:???
>>51
助かりました。ありがとうございました。


57 :nobodyさん:2011/03/07(月) 10:09:28.12 ID:e6LrE7ug
10000件ほどのデータを取得する場合
fetchAll()を使うよりも
fetch()を使ったほうがパフォーマンスはよくなりますか?

fetchAll()はフレームワーク側で
fetch()を行数分繰り返して、配列にいれているようなイメージがあるので、
fetch()で取得した後に、自分でループ内で処理を行っていったほうが
配列を作成する処理が省略できてメモリの消費量も
減るのかなと思っています。

如何でしょうか?

58 :nobodyさん:2011/03/07(月) 19:55:50.86 ID:???
君の目の前の箱を使えば5分で試せるだろ

59 :nobodyさん:2011/03/08(火) 10:37:44.71 ID:zCKyJOsB
Zend_sessionのマニュアルを見ていると以下のような説明があります

 $s = new Zend_Session_Namespace('expireAll');
 $s->a = 'apple';
 $s->setExpirationSeconds(5, 'a'); // キー "a" だけは 5 秒で有効期限切れとなります

これは理解できるのですが、キー「a」に連想配列の形で値をセットして、
その配列のキー単位で期限設定は出来ないんでしょうか?
自分で以下のようにやって試してみたんですが、うまくいきません。

 $s = new Zend_Session_Namespace('expireAll');
 $s->a['g'] = 'green apple';
 $s->a['r'] = 'red apple';
 $s->setExpirationSeconds(1, "a['g']"); // キー "a['g']" だけは 1 秒で有効期限切れとなります

やり方がマズいのか、そもそも意図してるようなことは出来ないのか、どちらでしょうか?
どなたかご意見お願いします

また、上記の連想配列のキー単位で即時破棄というのはどうしたら良いんでしょうか?

よろしくお願いします

60 :nobodyさん:2011/03/08(火) 10:41:39.48 ID:???
Zend FrameworkでXMLのパースってどうされてます?
Zend_xmlみたいにあればいいんですけど・・・

61 :nobodyさん:2011/03/08(火) 11:31:22.04 ID:???
そんなのフレームワーク使うか?w
ZF使う時点でphp5前提だと思うからsimpleなんちゃら使えばいいだろ?w

62 :nobodyさん:2011/03/08(火) 13:26:36.25 ID:???
>>59
有効期限が設定できるのはあくまでキー単位。
別のnamespaceを作ってやればいいだけでは?

$apples = new Zend_Session_Namespace('apples');
$apples->green = 'green apple';
$apples->red = 'red apple';
$apples->setExpirationSeconds(5, 'green');

みたいな。
こっちの方がスマートじゃないかい?

63 :nobodyさん:2011/03/08(火) 13:32:46.61 ID:???
>>62
ありがとうございます
やっぱりそうみたいですね、素直に個別にキーを作ることにします


64 :57:2011/03/08(火) 14:15:31.31 ID:???
メモリ消費量は
100MBほど節約できました。

etchAll()を使わずにfetch()を使用する意外にも
メモリの節約やパフォーマンスの向上を図れる技法ってありますか?

データベースのインデックスの張り方とか意外で、
ZendFrameworkもしくはPHPで出来る方法として何かあれば
アドバイス頂きたいです。

SQLでは*は使用せずに
カラムを指定するといったことは行っています。

よろしくお願いします。

65 :nobodyさん:2011/03/08(火) 14:21:19.98 ID:???
メモリは消費できた、結構。
速度は?

66 :nobodyさん:2011/03/08(火) 14:37:06.56 ID:???
>>64
printを使わずechoを使う
もっと節約するなら文字を表示するところは?>〜<?phpな風にする

67 :nobodyさん:2011/03/08(火) 18:28:58.56 ID:???
PHPでメモリをよく食うのが配列。
特に連想配列を大量に使ってるとかなりメモリを食うので、出来るだけ連想配列を使わない。
というか、大きい配列のデータをなるべく持たない。
配列を作ってもなるべくこまめにその変数を破棄するようにすると減らせると思う。

68 :nobodyさん:2011/03/08(火) 19:07:31.54 ID:???
>>67
そういう知識ってどこで得たの?
まさか全部自分で検証ってわけじゃないだろうし、自分は独学だから
職場の先輩からの知識の継承ってのがないんだよなぁ
PHP本なんて腐るほどあるけど、一通り作れるようになったら誰でもメモリやDB負荷の管理に
興味持つんだから、そういう要所をまとめて巻末に載せてくれたら良いのになぁ…
(zend全然関係なくて申し訳ない

69 :nobodyさん:2011/03/08(火) 19:58:32.36 ID:???
>>68
仕事を通じて引っかかったところがあったので検証もしてみたけど、
「PHP パフォーマンスチューニング」でググれば他にも大量に出てくるからまずそこから調べた方がいい。

ちなみに俺もほとんど独学だし、先輩から教わった事なんて仕事として使うときの
エラー処理取り扱い方くらいしかない。
ただのTIPSやチューニング方法なんていちいち本に書く内容じゃないし。
こういう知識はググる、検証してみる、バグトラック見てみる、元のソース読んでみるしかない。
後者の方は時間のあるときにやってみると色々勉強になるよ。


70 :nobodyさん:2011/03/08(火) 20:00:28.15 ID:???
PHP「だけ」できればいいやと思ってると身に付かない

71 :nobodyさん:2011/03/08(火) 21:00:46.19 ID:???
>>69
なるほど、ありがとう。助かったよ

72 :nobodyさん:2011/03/08(火) 21:58:50.51 ID:???
>>67
変数の破棄ってどうやるの?
unsetとか意味あるのかな?

73 :nobodyさん:2011/03/08(火) 22:04:10.22 ID:???
http://framework.zend.com/manual/ja/zend.application.quick-start.html
のとおりにやると、

localhost/hoge/fuga
ってやったら勝手にHogeController::fugaActionが起動して、
"views/scripts/hoge/fuga.phtml"のテンプレートが表示されます。

特定のアクションだけテンプレートのディレクトリを変更したいんですができませんか?

コントローラ内で
$this->_helper->viewRenderer->setViewSuffix('html');ってやれば
"views/scripts/hoge/fuga.html"になります。

$this->render('foo');ってやれば
"views/scripts/hoge/foo.phtml"になります。

これを特定のアクションだけ
"views/scripts/bar/fuga.phtml"を表示させたいのです。

$this->render('../bar/fuga');ってやったら勝手に"-"に補正しやがって読めませんでした。

74 :nobodyさん:2011/03/08(火) 23:23:27.36 ID:???
>>73
ああ、それね
専用のメソッドがあってそこで条件判断すればおk


>$this->_helper->viewRenderer->setViewSuffix('html');

について
俺はその情報は知らないからマニュアルのどのページに書いてあるのかurl張って教えて欲しい
教えてもらえるなら俺ももうちょっと詳しく教える
テイク&ギブでどうかな

75 :nobodyさん:2011/03/08(火) 23:48:23.81 ID:???
views/scripts/ 位置が基底ディレクトリだから
$this->render('bar/fuga');でできたと思うが

76 :nobodyさん:2011/03/09(水) 07:44:06.41 ID:???
>>74
おまえその書き込みはテイクしてないぞ

77 :nobodyさん:2011/03/09(水) 10:35:26.46 ID:???
日本語読めない人は黙ってたほうがいい

78 :73:2011/03/11(金) 01:04:00.80 ID:???
>>75
script 'hoge/bar/fuga.phtml' not found in path (/**/application/views/scripts/)
こんなんなる。
この'hoge'が邪魔だった。


半分自己解決
http://framework.zend.com/manual/ja/zend.view.scripts.html
にあるsetViewScriptPathSpecで、
$this->_helper->viewRenderer->setViewScriptPathSpec(':action.:suffix')
ってやって':controller/'を消したら概ね想定通りになった。

ただこれ例外投げても継続するからパス変更後に例外出したらエラーが大変なことに。
例外発生後は継続させずにそのときだけ変更とかできないかなあ。

79 :nobodyさん:2011/03/11(金) 09:44:23.59 ID:???
何でそんな難しくやろうとするんだろうか
もっと簡単にできんのに
とりあえず俺74だから

80 :nobodyさん:2011/03/11(金) 14:14:01.84 ID:???
ZFで構築された大手企業ってあんまり聞かない
cakeかsynfonyどちらかでweb制作会社がZFでサイト制作で使ってる程度しか見たことない
あるなら紹介してください

81 :nobodyさん:2011/03/12(土) 07:00:13.43 ID:???
ちょっとかじって驚いた。
Cakeは糞だと思う。


82 :nobodyさん:2011/03/12(土) 18:13:02.14 ID:???
フレームワークって名乗ってるからそういう用途としては使いにくいと思うけど
Zendが作ってんのにね

83 :73:2011/03/16(水) 22:10:10.44 ID:???
Zend_Dbって
where A AND (B OR C)
が作れない?

84 : [―{}@{}@{}-] nobodyさん:2011/03/17(木) 09:33:03.70 ID:???
>>83
->where('`A` = ?', $a)
->where('(`B` = ?', $b)
->orWhere('`C` = ?)', $c)

85 :nobodyさん:2011/03/17(木) 17:24:02.26 ID:???
おーぅアクロバティック

86 :nobodyさん:2011/03/17(木) 20:25:27.35 ID:???
ZFでサイト構築するのってやめたほうがいい?

87 :nobodyさん:2011/03/17(木) 20:36:35.13 ID:???
おすすめだお

88 :nobodyさん:2011/03/17(木) 21:43:33.52 ID:???
>>84
そんな書き方がw
ありがとう

89 :sage:2011/03/20(日) 13:23:00.64 ID:???
Zend Framework の Full Package を小分けにしてダウンロードできるようにしてみた。
http://ramat.ram.ne.jp/

それから、Pleiades に抵抗を感じる >>28 のために PDT 2.2.0 日本語化パックをおいとく。
被災者支援活動につかってちょ

90 :nobodyさん:2011/03/20(日) 15:13:01.29 ID:???
http://framework.zend.com/manual/ja/zend.db.adapter.html
ここのdeleteのところに
> 三番目の引数に配列の配列を提示すると、 値は自動的に引用符で囲まれてキーに入れられます。
> そしてこれらは条件として結合され、 AND 演算子で区切られます。

って書いてあるんだけど、実際に第三引数を入れても完全に無視される
メソッドも引数を二つしか受け取ってない
誰か報告よろ

91 :nobodyさん:2011/03/20(日) 16:36:23.89 ID:???
自分でしろ

92 :nobodyさん:2011/03/20(日) 21:06:33.07 ID:???
ZFコマンドでcreate actionした後、そのactionを削除する場合は
どうしたらよいのでしょうか?

単にcontrollersのactionメソッド部分と、actionビューファイルを削除する
だけでよいのでしょうか。
それともzfproject.xmlを再構築するような処理が必要になるのでしょうか?


93 :nobodyさん:2011/03/22(火) 13:08:01.70 ID:???
>>92

http://zend-framework-community.634137.n4.nabble.com/Keeping-zfproject-xml-up-to-date-with-Zend-Tool-td2526512.html




94 :nobodyさん:2011/03/22(火) 21:16:54.18 ID:???
>>93
レスありがとうございます。
英語はよくわかりませんけど、

zfコマンドで作ったactionやviewを削除したら、zf
コマンドでzfproject.xmlを再構築する方法はない。
zf ver.2 ではその機能を実装するよきっと。

てな感じでしょう。

93様、ありがとうございました。


95 :nobodyさん:2011/03/22(火) 22:43:11.53 ID:???
わからないとか言ってちゃんと英語読めてるじゃないかw

96 :nobodyさん:2011/03/23(水) 04:10:06.43 ID:???
きっとこの人はZF使っててもPHPは分からないという謙虚な方なのでしょう

97 :nobodyさん:2011/03/26(土) 15:01:52.93 ID:???
ZFを使うのに適したIDEは何がお勧めでしょうか?

NetBeansを使ってみましたが、ZFのコマンドが簡単に
使えるようにサポートされていて、良さそうでした。

でも、ZFならZend本家のPDTが良さそうな気がしますし・・・
どちらがよいのでしょうか?

98 :nobodyさん:2011/03/26(土) 15:09:29.94 ID:???
>でも、ZFならZend本家のPDTが良さそうな気がしますし・・・
じゃそれ使えば良いだろw

99 :sage:2011/03/26(土) 17:12:24.83 ID:???
>ZFを使うのに適したIDEは何がお勧めでしょうか?
つ Zend Studio

100 :nobodyさん:2011/03/26(土) 18:05:40.29 ID:???
こんにちは、ルーティングについて教えていただけますでしょうか?

$front =Zend_Controller_Front::getInstance();
$front->setControllerDirectory( CONTROLLER_PATH );
$router=$front->getRouter();
$router->addRoute( 'my_router',
  new Zend_Controller_Router_Route_Regex(
    'mycontroller/(\w{1,25})',
    array( 'controller' => 'mycontroller', 'action' => 'index' )
));

index.phpに上記のルーターを追加しました。

アクションコントローラーでは、
class MycontrollerController extends Zend_Controller_Action {
  public function indexAction(){
    /*
      $this->getRequest()->getUserParam( 1 )がデータベースに登録されているか検証し、登録されていなければ例外を投げる
    */
〜〜〜〜〜〜〜〜〜〜〜〜〜〜
と、しています。
http://localhost/mycontroller/test/
でアクセスする場合、'test'がデータベースに登録されていれば問題ありません。
しかし、
http://localhost/mycontroller/index/test/
や、
http://localhost/mycontroller/index/test/aaaa
でアクセスした場合に例外を投げたいのです。
'my_router'ルーターを経由した/mycontroller/index/アクションへのアクセスか否かを判断できればいいと考えているのですが、どのように書けばいいのかわかりません。
お手数ですがご存知の方、ご指示をお願いします。
よろしくお願いします。


101 :nobodyさん:2011/03/27(日) 00:03:25.15 ID:???
zf.batって使い道あるの?

102 :nobodyさん:2011/03/27(日) 11:48:52.26 ID:???
まだ、使ったことがないけど、使い道はあるんじゃね?

103 :nobodyさん:2011/03/27(日) 12:44:03.04 ID:???
使ったことないのにレスしたの笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑

104 :nobodyさん:2011/04/02(土) 22:45:15.46 ID:???
Zend_Validateのメッセージを日本語化したくて下記の方法を
試しているのですが上手く変換されず困っています。
同じようにリソースファイルを使用してきちんと変換されている方はいますか?
ファイルへのパスはきちんと通っています。

ttp://blog3.logosware.com/archives/tag/zendframework

Znedのバージョンは1.11です。
よろしくお願いします。

105 :nobodyさん:2011/04/03(日) 10:44:23.66 ID:???
>>104
1.14にバージョンアップしてから来てくれないかな

106 :nobodyさん:2011/04/03(日) 11:28:05.02 ID:???
>>105 了解!

107 :nobodyさん:2011/04/05(火) 03:01:38.74 ID:???
>>104ですがphp.iniのインクルードパスに
'.;php\peer\;php\zend1.14\'のようにpeerを先に記載していたのですが、
こちらにzendが含まれ、先に読み込まれていた事が原因で新しいバージョンに
する事ができていませんでした。

ありがとう>>104 (´З`)チェッチュ

108 :sage:2011/04/05(火) 11:31:30.25 ID:5FZ9UmE+
Zend Framework のパフォーマンスガイドにあるけど、一番最初のピリオドも最後に持っていって、

'php\zend1.14\;php\pear\;.'
のようにするといいと思うよ ;-)

109 :nobodyさん:2011/04/05(火) 12:00:45.95 ID:???
>>108
urlキボンヌ

110 :sage:2011/04/05(火) 16:51:04.75 ID:5FZ9UmE+
>>108
http://framework.zend.com/manual/ja/performance.classloading.html

「現行ディレクトリは最後に定義するか、または定義しない」


111 :nobodyさん:2011/04/05(火) 17:51:01.85 ID:???
>>110
温かい思いやりに感謝する

112 :nobodyさん:2011/04/06(水) 20:30:29.32 ID:WtZWBRpO
すみません、質問です

defaultモジュール中で、エラー用のコントローラを作ろうとErrorController.phpを作り、ルーティングを
routes.default_error.route = "/error/*"
routes.default_error.defaults.controller = "error"
routes.default_error.defaults.action = "index"
routes.default_error.type = "Zend_Controller_Router_Route"
としたんですがエラーになりました。(http://example.com/error で表示すると思ったのに。)
※apacheエラーログで、
[Wed Apr 06 11:01:05 2011] [error] [client 192.168.0.3] File does not exist: /var/www/error などと言われます

原因がわからなかったので、ファイル名とルーティングをそれぞれ
ErrorxController.php
routes.default_error.route = "/errorx/*"
routes.default_error.defaults.controller = "errorx"
routes.default_error.defaults.action = "index"
routes.default_error.type = "Zend_Controller_Router_Route"
にしたところ正常にindexアクションの中身を表示しました(http://example.com/errorx

どういう原因が考えられるでしょうか?
ErrorControllerというコントローラ名の重複は同じモジュール中にはありません。
(異なるモジュール中にはありますが、関係あるんでしょうか?)
上記のアパッチのエラーログの「File does not exist:/var/www/error」というのも、
このアプリ自体/var/www/example.com/の中で動いているのでありえないことで理由が理解できません。

すみません、ご意見お願いします

113 :nobodyさん:2011/04/08(金) 05:28:10.73 ID:MbleiVWq
ErrorControllerをモジュールごとに使い分ける方法ってありますか?
ググると一つ出てくるんですが、あくまでそのブログを書いた人の考えたやり方で
標準というか、安心して使える実現法を知りたいです

114 :nobodyさん:2011/04/08(金) 10:02:59.47 ID:???
ZFに標準なんて方法はないんだが

115 :nobodyさん:2011/04/08(金) 15:00:06.96 ID:???
>>114
書き方が悪かったです、すみません。標準と言うより定番です。
モジュールごとにエラーコントローラをわけるなんてあると便利に決まってる機能なのに
マニュアル見ても見つからなかったので、自分が知らないだけでZendFW利用者の間で
定番的によく使われてる方法があるなら知りたいなと
英語のFAQサイトでも見つけたけど、なんで機能に組み込んでないんだろう

116 :nobodyさん:2011/04/08(金) 15:16:04.91 ID:???
標準も定番もないし
やるなら1例としてモジュール名を元にsetErrorHandlerControllerでそれぞれのエラーコントローラを指定するとか


117 :113:2011/04/12(火) 08:32:07.94 ID:???
>>116
すみません、お礼忘れてました
どうにかこうにか形になりました、ありがとう

118 :nobodyさん:2011/04/14(木) 18:49:46.04 ID:???
Router_Route_Regexで

http://www.example.com/info.html?123

の123を取得したくて

$route =new Zend_Controller_Router_Route_Regex(
 'info.html\?(\d+)',
 array(
  'controller' => 'info',
  'action' => 'index'
 )
);

とかいたのですがマッチしません。
なぜでしょうか?


119 :nobodyさん:2011/04/14(木) 19:24:11.69 ID:???
getInstance()にオブジェクトとして123の部分が入ってるからそこから取れば?

120 :nobodyさん:2011/04/14(木) 23:05:38.43 ID:???
>>119
すみません。
マッチしないという言い方が正しくありませんでした。

ディスパッチエラーになって/info/iindx/が表示されないのです。
なぜでしょうか?



121 :nobodyさん:2011/04/14(木) 23:08:54.32 ID:???
関係ない箇所だけど'info.htmlはinfo\.htmlって書くべき

122 :nobodyさん:2011/04/14(木) 23:49:11.11 ID:???
>>121
うが!!
・・・・ですよね・・・。


123 :nobodyさん:2011/04/15(金) 09:17:52.27 ID:???
>>121
と思ったら、それが原因ではありませんでした。


124 :nobodyさん:2011/04/15(金) 10:29:45.09 ID:???
関係ない箇所だけど
関係ない箇所だけど
関係ない箇所だけど

125 :nobodyさん:2011/04/17(日) 20:03:37.97 ID:???
PDTなどのIDE環境なしで、テキストエディタでZendFrameworkを学習
するのは、よくないのでしょうか?
(ZFより先にIDEを導入するべき?)

126 :nobodyさん:2011/04/17(日) 20:48:41.28 ID:???
好きにすればいいんじゃない
でも入力補完とかリアルタイムの構文チェックに慣れると
普通のエディタには戻れなくなる

127 :nobodyさん:2011/04/18(月) 18:04:20.46 ID:???
誇らしいニダ

128 :nobodyさん:2011/04/22(金) 21:27:19.03 ID:V7g6SPUo
質問させてください
・/authContorller.php
public function denyAction() {
Zend_Layout::getMvcInstance()->setLayout('message');
if ($this->getRequest()->isXmlHttpRequest()) {
$this->_helper->getHelper('viewRenderer')->setNoRender();
$this->_helper->getHelper('layout')->disableLayout();


129 :nobodyさん:2011/04/22(金) 21:30:49.02 ID:V7g6SPUo
$return = array('message' => $this->view->translator('auth_deny_g'));
$this->getResponse()->setBody(Zend_Json::encode($return));
} }

・/auth/deny.phtml
<div><?php echo $this->translator('auth_deny_g'); ?></div>
とあります

130 :nobodyさん:2011/04/22(金) 21:32:42.49 ID:???
質問:〜があります
回答:ありますね

131 :nobodyさん:2011/04/22(金) 23:25:41.71 ID:V7g6SPUo
>>128-129続き
$return = 〜 ('auth_deny_g')); の1文は一体何を意味しているのでしょうか?
messageに変数を割り当てているのでしょうが、translator('auth_deny_g')の値が何を意味するのか分かりません
どこかにauth_deny_gに該当する値、又ファイルが存在するのでしょうか?

2chの本文の長さ規制で変な連投になりすみません

132 :nobodyさん:2011/04/23(土) 10:50:07.38 ID:???
$this->view->translator から、
'auth_deny_g'ってキー使って値を引っ張ってんでしょ。
translatorはZend_Translatorだよな。
んで、これはZend_Formの認証失敗を通知するメッセージの出力じゃねーの?
周辺が解らなすぎて答えようがねえよ。

133 :nobodyさん:2011/04/23(土) 11:59:03.01 ID:???
500ページ程度のサイトはZFとCakePHPどちらで構築するのが適していると思いますか?

134 :nobodyさん:2011/04/23(土) 12:24:47.86 ID:???
ワードプレス

135 :nobodyさん:2011/04/23(土) 14:34:34.73 ID:???
>>133
その500ページの内容による。
それすら無しに、ZFとCakeって比較は馬鹿げてる。
内容がわかってもその比較は馬鹿げてて、
WordPressの方がいいってのもあり得る。

136 :nobodyさん:2011/04/23(土) 15:44:45.60 ID:???
こういう意味不明な回答はFWとCMSをよく使いこなしてきてない人なんだろうな

137 :nobodyさん:2011/04/23(土) 16:44:02.43 ID:???
いや、質問が意味不明だし。。
ギャグで返す以外にどうしろとw

138 :nobodyさん:2011/04/24(日) 00:32:37.59 ID:???
tomatoCMSとか見てみたけど、わけが分からなかった
皆この位のコードとか書いてアプリケーションとか作ってるの?
それともやっぱこのレベルは難しい?

139 :nobodyさん:2011/04/25(月) 14:15:53.46 ID:???
>>136
あんたの方がよっぽど、ソフトを使ってみただけの実務の出来ない技能屋って感じがするけどなあ。
フレームワークとCMSを敢えて提示し得る問いだってのは明らかじゃん。

140 :nobodyさん:2011/04/25(月) 14:57:36.93 ID:???
悔しかったのか

141 :nobodyさん:2011/04/25(月) 22:52:28.48 ID:???
>>138
心配しなくても、tomatoCMSレベルを作れる日本人は殆ど居ません

142 :nobodyさん:2011/04/26(火) 00:14:56.20 ID:???
普通に皆作れる
ただし、作れる人は他の事やってる

143 :nobodyさん:2011/05/01(日) 18:55:39.12 ID:???
Zend_Form_Element_InputとかZend_Form_Element_Hiddenとかがxhtmlじゃなくてhtmlの省略形の閉じタグがつかないんだけど、
これってどうやったらxhtmlになるの?



144 :nobodyさん:2011/05/03(火) 13:13:25.50 ID:???
>>143
$view->doctype(ほにゃらら);

145 :nobodyさん:2011/05/05(木) 23:10:30.86 ID:???
>>144
トンスル
ちがった
サンクス

146 :nobodyさん:2011/05/09(月) 18:07:17.19 ID:9NI2nLcl
Zend_service_twitterについて質問です
自分のアプリケーションからつぶやきを投稿するフローで、
TwitterAPI認証画面への遷移・認証成功後、アクセストークンを取得して戻って来たら、
以下のように クラスを実行する必要があると思うんですが、

$twitter = new Zend_Service_Twitter(array(
 'username' => 'hogeUser',
 'accessToken' => unserialize($_SESSION['TWITTER_ACCESS_TOKEN'])
 )
);
$twitter->status->update("アプリからつぶやきました");

このパラメータの 'username'って誰のユーザーネームを入れたら良いんでしょうか?

考えられる候補は以下の3つあって、
1)アプリケーションそのもののユーザー
2)そのアプリケーションを利用してるユーザー(twitterAPIにID/passwordを入力した、そのIDそのもの)
3)その他、だれでもいい、実在しないユーザでもいい
全てを試してみたものの全部エラーなく実行できてしまいました。
実際の投稿者(つぶやいたユーザ)は全部、(2)のapiログインしたユーザです。
第二引数のTWITTER_ACCESS_TOKEN自体が、このユーザの権限で作ったものだから当たり前かも知れないですが、
ではusernameって何の為にあるパラメータなんでしょうか?

マニュアル読んだものの英語なのでよくわからなくて、色んなブログ記事を読んでも
このユーザーがなになのか、ハッキリ書いていません。
すみません、アドバイスお願いします

147 :nobodyさん:2011/05/09(月) 20:12:17.36 ID:???
お前は何を言ってるんだ

148 :nobodyさん:2011/05/09(月) 21:28:56.06 ID:???
>>146
本当にそこまで試して全部結果が同じなら、
なんかの互換確保用か、名残じゃねえの?
場所ははっきりしてんだし、ソース追っかければいいじゃない。

149 :146:2011/05/09(月) 23:03:42.09 ID:???
>>148
どうもです。言われた通りソースを見てみました。
すると、HttpClientの生成やその先の処理にusernameは全く使ってませんでした。
setUsername();とgetUsername();の2つのメソッドがあるだけで、
このHttpClientのユーザの名前を入れる/引き出す処理に使うだけみたいでした。
なので、usernameに指定するのは(2)のアプリケーションユーザ名のようです。
パラメータの配列からusernameキーそのものを消しても動いたくらいで…

とりあえず解決とします。ありがとうございました。

150 :nobodyさん:2011/05/10(火) 00:43:33.42 ID:???
>>149
Basic認証時代の名残かもね。
当時コンストラクタに$username, $passwordが引数で渡されてたから

151 :nobodyさん:2011/05/10(火) 11:31:18.60 ID:???
>>149
OSSだとよくあるよね。このフラグ使ってねーのかよ!って。
ドキュメントに記載は無いけど、ソースのコメントにはあったりするし。
ZFぐらい大きくても、個々のライブラリのコミッタって少ないだろうし、
まあソース見たほうが早いってこった。

152 :nobodyさん:2011/05/10(火) 17:08:28.72 ID:???
上でtomatoCMSの話題がありましたので質問させてもらいますが、
tomatoCMSはrequire_once等を使用せずに別ファイルのクラス等を呼び出していますが、これは何故なのでしょうか?
どういう仕組みでこのように出来るのでしょうか?

153 :nobodyさん:2011/05/10(火) 19:08:58.78 ID:???
tomatoは知らんが、まさかAutoloader使ってるだけじゃないよな?

154 :nobodyさん:2011/05/11(水) 13:27:38.91 ID:???
ossは開発者の興味が薄いと不具合あっても放置されまくりだからな。正直品質は低い。

155 :nobodyさん:2011/05/11(水) 21:41:01.28 ID:28BHzc0+
>>154
君は PHP 使っているの?だったらすぐやめて .net や delphi に乗り換えたほうがいいよ :-p

156 :nobodyさん:2011/05/11(水) 23:26:29.06 ID:???
Delphiはやめとけ
あれは情報が少ない
やるだけ損だ

157 :nobodyさん:2011/05/11(水) 23:51:13.35 ID:???
>>156
おーい

158 :nobodyさん:2011/05/14(土) 03:05:05.54 ID:???
>>154
商用製品でも同じこと
売上が薄いもんは品質低い

159 :sage:2011/05/14(土) 06:53:07.55 ID:???
>>154 はいまだに1.5以前のドキュメントを参照して
「高品質」というセールストークに反応したのだろうか。:-p
http://framework.zend.com/manual/1.5/ja/introduction.overview.html

最新はコッチ
http://framework.zend.com/manual/ja/introduction.overview.html

160 :nobodyさん:2011/05/14(土) 09:46:32.32 ID:???
なあ、>>154 は皮肉じゃないか。

161 :nobodyさん:2011/05/14(土) 12:15:58.59 ID:???
zf2いいね

162 : 忍法帖【Lv=10,xxxPT】 :2011/05/15(日) 15:21:09.77 ID:???
2.0いつくんの?

163 :nobodyさん:2011/05/15(日) 15:26:59.62 ID:???
来年までこないよ

164 :nobodyさん:2011/05/26(木) 00:37:23.77 ID:HR+pqHzo
ZendFrameworkを使ってSNSみたいなサービスを使ってみようと思ってるんですが、
管理画面状態の時も他ユーザが閲覧してるプロフィール画面の時もURLを
http://yamada.hogehoge.jp/ という形で同じにしたいです。
この条件を満たすとき、ルーティングから画面切り分けまでのロジックはどうすべきでしょうか?

前提:管理画面モード(ログイン時)では、専用のセッションにユニークのユーザ名(yamada)を入れてまわる
1:とりあえずルーティングはdefaultモジュールの閲覧モード(profileコントローラ)を設定
2:profileコントローラのコンストラクタでzend_authの検証結果を見る(管理画面モードであると確認)
3:管理画面用セッションからユーザ名とurlのパラメータ「yamada」を比較
4:同じだったら、管理画面用mypageモジュールとアクションに転送

こんな感じかなと思ったんですが、なんか変と言うか。
4の転送ってのも、毎回毎回/module/default/***Controller.phpから/module/mypage/***Controller.phpに
切り替えるのかという気がするし、もっと良いやり方があるのではって思ってしまいます。

一番の解決策は管理画面モードの時は http://mypage.hogehoge.jp
閲覧用のページの時は http://yamada.hogehoge.jp
とハッキリわけることだとわかってるんですが、そうしたくないなと思いまして…

別の方法として、閲覧モードの時も管理画面モードの時も同じモジュール同じコントローラを利用し、
認証チェックの結果次第で管理画面モードの時のみ更新系機能を組み込んで
viewを切り替えることを考えもしたんですがそれもおかしいし…
(閲覧モード時に使わない機能とアクションが大量にあるというあたりが)

どうするのが良いでしょうか。変な質問ですみません

165 :nobodyさん:2011/05/26(木) 00:55:48.05 ID:???
>>164
なんでサブドメイン?

166 :164:2011/05/26(木) 01:36:57.62 ID:???
>>165
単純に見映えがいい?カッコイイ?からというしょうもない理由なんですが
こういうルーティングの機能があるから使ってみるか、程度の…
サブドメインを利用してること自体が問題になるんでしょうか? そんなことないですよね?

167 :nobodyさん:2011/05/26(木) 04:04:39.00 ID:???
>>164
Cookie(というかセッションのキー)どうすんの?ドメインにワイルドカードで許可できたっけ。

168 :nobodyさん:2011/05/26(木) 05:24:34.82 ID:???
>>164
>>166
ルーターを作って username.xxxxx の場合は、
mypageモジュール内のコントローラを呼ぶ。
mypageモジュール内でセッション情報の確認を行い、
不正な場合はdefaultにリダイレクトにすればいい。


169 :164:2011/05/26(木) 14:50:51.50 ID:HR+pqHzo
>>167
すみません、僕の知識不足だと思うんですがご質問が理解できません
上で書いたことって、セッションの管理に問題が出るような処理をしているんでしょうか
…と気になって調べたらドメイン移動でセッションが切れる問題をおっしゃってるんですよね?
それがこのルーティングのサブドメイン変更にも影響あるのでは、と。(違ってたらすみません)

そういう問題を解決した上でZendFWのルーティングって実装されているのでは…
セッション管理をZend_Sessionで管理している限り問題ないのではと信じたいですが
不安になってきました、どうなんだろう

170 :nobodyさん:2011/05/26(木) 14:55:22.10 ID:???
ヒント
明らかに自分より下の知識しか持たない回答者をスルーすべし

171 :164:2011/05/26(木) 15:32:25.16 ID:???
>>168
ありがとうございます
リダイレクトとは、どういう方法でのリダイレクトを指しているんでしょうか。
mypageモジュールのコントローラ中で、$this->_redirect('/default/user/profile/')ってやるということでしょうか?
自分自身>>164のレスの中で「リダイレクト」とか書いてて、この方法想定してましたが、
これだとよく考えたらURLがhttp://yamada.hoge.jpにならないですね。。
>>167さんの言ってた問題はこれなんでしょうか?)
別の方法をおっしゃってるんでしょうか。
すみませんが、どんなリダイレクトを想定されてるのかもう少し教えてください


自分が今思いついたやり方は、個別にモジュール/コントローラ/アクションを指定出来なきゃダメという前提で
frontContorllerに仕掛けるプラグインみたいにZend_Controller_Plugin_Abstructを継承するクラスを作って、
その中で以下の処理をさせ、mypageモジュール中のコントローラの冒頭でrequireさせる
1:セッションチェック&リダイレクト
2:リダイレクトの方法は
 $req->setModuleName('default');
 $req->setControllerName('user');
 $req->setActionName('profile');

…という方法なんですがおかしいでしょうか
これならURL的にも変更無しで画面切り替えできるような気がするんですが、、

でも、個別のコントローラ内でZend_Controller_Plugin_Abstructを継承させたファイルをrequireするなんて
聞いたこともないと言うか。。
はっきりプラグイン化してフロントコントローラに仕掛けるべきなんだろうか
こんなに難しくなると思わなかったな…
長くてすみません

>>170 自分もすごく低レベルなので。。

172 :167:2011/05/26(木) 16:10:30.53 ID:???
Cookie仕様確認したけどSet-Cookieのdomainを.hoge.jpにしておけばサブドメイン全部に送信できるのか
中途半端な疑問失礼
ttp://www.studyinghttp.net/cookies

173 :168:2011/05/26(木) 19:37:18.11 ID:???
>>171
内部的に処理をリダイレクトするのでは無く、
管理画面にアクセス出来ないユーザが来た場合は、
$this->_redirect('http://default.xxxxx/'); とすればいいって事。


174 :164:2011/05/26(木) 20:16:09.03 ID:???
>>173
それって、http://yamada.hoge.jpでの認証チェックでエラーになると
http://default.hoge.jpに転送するってことですよね?
それだと一般の閲覧/当人の管理画面の両方でURLを http://yamada.hoge.jpにするという
前提が満たせないと思うんですが…タイプミスですか?

$this->_redirect('http://yamada.xxxxx/');のタイプミスだとしても、
それだとリダイレクトループにならないですか?
勘違いしてたらすみません

175 :168:2011/05/26(木) 22:16:25.58 ID:???
>>174
ごめん。>>164の要件をよく読んで無かった。
「同じURLで閲覧」を前提とするのであれば>>164の 4. の方法は別に変では無いよ。

176 :nobodyさん:2011/05/26(木) 22:45:24.84 ID:???
>>164
ZF徹底マスターに載ってたサンプルだと
フロントコントローラのpreDispatchに登録したプラグインの中で
飛び先のモジュール・コントローラ・アクションの組み合わせから
アクセスに必要な権限をテーブルから引いて
セッションに保存してあるユーザーの権限と照合する。
権限不足なら、$req->setControllerName('auth'); 
$req->setControllerName('login'); という感じで
ログインの機能を持ったコントローラ・アクションに飛ばす。
権限があれば何もせずにスルー、ってことをやってる。

ログイン認証をするアクションは、
認証が取れたら↑のプラグインで使う情報をセッションに登録して
適当なページにリダイレクトする。

177 :164:2011/05/26(木) 22:48:13.48 ID:???
>>175
どうもです

>>171で書いた方法でプラグイン化して試してみます
質問したおかげで自分のやりたいことを整理できたり、考えの甘い点が見つかったので
すごく良かったです。皆さんありがとう

178 :164:2011/05/26(木) 22:51:16.27 ID:???
>>176
あ、それちょうど見てたところでした
やっぱりプラグイン化してフロントコントローラで処理するのが王道ぽいですね!
この本良いですよね
setControllerNameとかの利用法をおさらいできて良かったです
どうもありがとう

179 :nobodyさん:2011/05/27(金) 10:24:02.48 ID:???
fileconicってZFなんだな。
表に出ない事例は山ほどありそう。

180 :nobodyさん:2011/05/27(金) 10:24:22.42 ID:???
filesonicだった

181 : 忍法帖【Lv=19,xxxPT】 :2011/05/27(金) 13:48:15.12 ID:???
Zend Framework in Action に書いてなかったっけ?

182 :nobodyさん:2011/05/27(金) 15:44:49.37 ID:???
「タイプミスですか?」
これすごいな

183 :nobodyさん:2011/06/02(木) 20:52:01.30 ID:???
Zend OpenIDってAX対応してないの?

184 :nobodyさん:2011/06/12(日) 16:56:38.96 ID:???
Zend Frameworkを基礎から覚えようと思ってネットでチュートリアルとか
探したけど、わかりやすいのはありませんでした。

日本語だと、codezineとかIBMとかに少しあるくらい。
でも内容が古かったりするのが多くていまいち。

日本語の情報はすくないし古いのか、と思い、Zend本家の
Tutorialを見るも、コード解説が不十分でよくわかりませんでした。

C#, SQL, ASP.netなどの経験はあったので、ZendFrameworkもすぐ
覚えられるだろうと思っていたら、チュートリアルでつまづきましたw

Zend Frameworkのよく使う機能を中心に、丁寧に解説して
いるサイトとかありますか?

185 :nobodyさん:2011/06/12(日) 17:11:31.18 ID:???
公式マニュアル

186 :nobodyさん:2011/06/12(日) 17:46:45.24 ID:???
>>185
Zend本家のTutorialとかいたのが、公式マニュアル、チュートリアルのことです。

あれが一番ましということですか?
QuickStartというチュートリアルなのに、解説のないコードが
ポンポン出てきます。

187 :nobodyさん:2011/06/12(日) 17:48:28.93 ID:???
QuickStartなんだから解説いらんだろw

188 :nobodyさん:2011/06/12(日) 18:17:10.24 ID:???
今までどんな書籍で学習して来たのか興味深いな。

10日で覚えるゼンドフレームワークなんてのはまだ無いな。
10日で覚えるphpでも学習した気には成れると思うよ。
就職活動の為の即席学習目的かな? 実務経験無さそうだw

cでもsqlでもいいけど、ちゃんと実務的なアプリ作った実績とかのほうが評価されると思うよ。
コンサル会社狙いなら会計の勉強してbsやplを印刷したりpdfにかき出せるアプリを作ってみるとか。
軽く一通り遣る程度で住ませたいなら、情報処理とかの資格を取ったほうが評価される。本見て作れるとか全く評価外だし。
一番いいのは受験勉強やり直して東大に入り直してマーチ以下の足切りを回避することだと思うけどw

189 :nobodyさん:2011/06/12(日) 18:57:46.25 ID:???
Zend Frameworkが人気ないのは、CakeやSymfonyに比べて
情報が少ないからかな?

>>187
いやいやいやw
これではぜんぜんクイックにスタートできないんですよ!

Zend本家のでつまづいたので、今はこれ読んでます。ちょっと古いけど。
http://www.ibm.com/developerworks/opensource/library/os-php-zend1/index.html

>>188
学生認定されてしまいましたが、いちおうSEですw
ただ、仕事はシステム管理者やってたので、業務でのコーディング経験は
ほとんどなく、プログラミングは初級レベルです。
自分専用の小さなソフトをC#.netで作るくらい。
コアにZendを使っているCMSをカスタマイズしたくて、Zendを学習し始めたという感じです。

190 :nobodyさん:2011/06/12(日) 18:59:52.82 ID:???
>>189
クイックスタートのどこら辺が分からんの?
コードの羅列だけじゃなくて必ず文章がついてると思うけど

191 :nobodyさん:2011/06/13(月) 09:40:57.47 ID:???
採用事例のソース読めよ。

192 :nobodyさん:2011/06/13(月) 10:05:56.83 ID:???
下記の URL の「各種のリソース」>「チュートリアルや構築例など」見るといいかもよ

http://www.zend.co.jp/tech/index.php?%A4%BD%A4%CE%C2%BE%2FZend%20Framework%2FFAQ

193 :nobodyさん:2011/06/13(月) 20:20:19.80 ID:???
初心者の書き込みに優しく回答・解説できない人は、
とても実務レベルのチカラがあるとは思えないよん。

194 :nobodyさん:2011/06/13(月) 21:18:44.04 ID:???
公式リファレンスで十分。
あれ読んで解らない人は、金払ってスクール行くなり本を買うなりするレベルの人達。

実務レベルの解説を求めるなら、尚更金払えとw

195 :nobodyさん:2011/06/14(火) 17:37:09.39 ID:???
スキル低いのにcmsの選択自体が間違ってる漢字だなw

http://hibari.2ch.net/test/read.cgi/php/1258653329/
【CMS】AD-EDIT質問スレ【国産】
http://hibari.2ch.net/test/read.cgi/php/1268062848/
フリーCMSツールについて語るスレ3
http://hibari.2ch.net/test/read.cgi/php/1280524860/
PHP+MySQlでCMSっぽいものを
http://hibari.2ch.net/test/read.cgi/php/1173785085/
CMSと他のシステムの融合のテクニック
http://hibari.2ch.net/test/read.cgi/php/1157172951/
超高機能CMS TYPO3
http://hibari.2ch.net/test/read.cgi/php/1144670311/
【簡単】Jaws【CMS】



講師と職人は同一でもないし。
親方のノウハウ欲しいならぶん殴られて教育されるのも覚悟しないと。教師に社会経験が足りないのは散々見てると思うけどねw

196 :nobodyさん:2011/06/14(火) 20:21:48.59 ID:???
ZFがCMS?

197 :nobodyさん:2011/06/14(火) 22:35:10.15 ID:???
ZFがどうのと言う前にPHPの経験がない悪寒
適当なPHPの解説本とZF徹底マスターでも買ってくれば?

198 :nobodyさん:2011/06/15(水) 01:39:12.19 ID:x3E18VF9
公式リファレンスはたまに思いっきり出鱈目が書いてあるのと
和訳されてないのがあるのをどうにかしてくれれば完璧なんだが

199 :nobodyさん:2011/06/15(水) 06:12:14.99 ID:???
ZFは初心者用のチュートリアルが充実していないと俺も思う。

初心者を叩くのではなく、初心者がZFをスムーズに使えるように
先駆者が導いてあげるのが、ZF利用者の拡大に繋がるのだが・・・

俺がもっとスキルがあれば、チュートリアルを書いて提供したい
ところだが、そこまでのスキルはないです。

200 :nobodyさん:2011/06/15(水) 06:38:43.09 ID:???
>>198
どこ?

201 :nobodyさん:2011/06/15(水) 10:08:01.07 ID:???
レスくれたみなさまありがとう(まとめて)

>>191
これからZFはじめようって人に、採用事例のソース読めってのは無理があるんでは。
もっと小さなところからはじめないと効率が悪いと思う。

>>192
ペンギンのサイトとかわかりやすい記事があった。ありがとう。

>>190
まず、Zend Framework Quick Startの「Create A Layout」のあたりではまりました。
http://framework.zend.com/manual/en/learning.quickstart.html
ここはリファレンスで調べながら読んだら、やっと理解できました。
けど、リファレンス調べないと理解できないチュートリアルってどうなのかな、とも思ったり。

その次の、「Create a Model and Database Table」で完全に挫折。
http://framework.zend.com/manual/en/learning.quickstart.create-model.html

ただ、もうこの時点でチュートリアルとしては不適切なドキュメントだとはっきりわかったので
他のドキュメントでZFを学ぶことにしました。
このページのコメント見ても、「このコードでは動かない」と書いてありますw
わかりにくいうえに、バグもあるチュートリアル。

202 :nobodyさん:2011/06/15(水) 11:30:08.86 ID:???
本を買ったら?
俺は最初本で学習したおかげで、公式のチュートリアルも理解できた。

203 :184:2011/06/15(水) 17:02:31.99 ID:???
>>197 >>202
はい。
ネットのドキュメントだとなさそうなので、あきらめて本を探しました。
洋書でZFの本がたくさんあったのでAmazon.comで2冊ほどぽちってみました。

ZFと違って、CodeIgniterのサイトは、ヘルプやチュートリアルがすごく分かりやすかった。
しかもVideo Tutorialまであったよ。
http://codeigniter.com/user_guide/toc.html

トップページにも、
CodeIgniter is right for you if you need clear, thorough documentation.
と書かれていたけど、ほんとにドキュメントしっかりしてるなー、と思った。


>>199
同じ感想の人いてよかった。
いちばんZFのドキュメントでいらついたのが、コードの部分をコピペしようとしたら
行番号まで張り付けられてしまうようになっていること。

204 :nobodyさん:2011/06/15(水) 17:24:31.33 ID:???
洋書?って事は英語がわかるんだろう?
それなら本を買わなくても海外のブログ等から情報を得られそうだけど?

205 :nobodyさん:2011/06/15(水) 18:05:50.97 ID:???
>>204
英語圏のサイトも探しましたけど、良書に匹敵するような
コンテンツはなかったです。
ブログはピンポイント解説どまりが多かったです。

よく使う機能を、体系的に、わかりやすく解説していて、
なおかつ内容が新しい、というのは見つからなかった。

Frameworkは、CodeIgniterだのCakePHPだの好みでいろいろ宗派が
わかれるから、ネットのコンテンツも少なくなるんではないかな、と思います。

Rob Allenのサイトにあるチュートリアルは英語圏では評価が高いみたい。
これは読みました。
http://akrabat.com/zend-framework-tutorial/

彼は、Zend Framework in Actionという本も書いているんだけど、
amazonの書評はあまりよくなかった。バグがおおいとか。

206 :nobodyさん:2011/06/15(水) 20:29:15.04 ID:???
>>201
「Create A Layout」の具体的にどこが分からんの?
俺は解説を流し読みつつ載ってるコードを書いたら最後までスムーズに実行できたから
いまいち君の言ってることがピンと来ないんだけど

207 :nobodyさん:2011/06/15(水) 21:03:11.09 ID:???
>>198
他人を当てにしないで自分がまずやらないと、ね
昔も IRC で言ったけれど、利用企業からすこしづつ人を出して分担して作業して欲しいな。

208 :nobodyさん:2011/06/15(水) 21:22:47.51 ID:???
>>203
公式マニュアルを改善するリーダーとして活躍してみませんか?(英語必須)

209 :nobodyさん:2011/06/15(水) 22:11:01.59 ID:???
本に載ってる情報は最新バージョンとの差異が多々あるので、あまりオススメ出来ない。
(特にZF1.9以前のバージョンの解説書)

簡潔なリファレンスとソースコードがあるのだから、
それを読めるようになるのが一番手っ取り早い。
英語が理解できるなら尚更コードコメント読む方が早い。

IDE使えばクラスツリーやコード補完までしてくれるゆとり仕様。
(CIやCakeはIDEとの親和性悪すぎる)


210 :nobodyさん:2011/06/15(水) 22:49:55.58 ID:???
MappaerとかAuthとかを詳しく書いてほしいですな〜

211 :nobodyさん:2011/06/16(木) 14:19:10.00 ID:???
CodeIgniter絶賛なら、CodeIgniterの子供になればいいのに。
zendには要らない娘。

212 :nobodyさん:2011/06/16(木) 19:42:52.98 ID:5IgfNiWj
Zend_Authについてお聞きしたいんですが、以下について解る方いらっしゃいましたらぜひ力を貸してください。

defaultとadminの2つのモジュールがあると仮定して、adminモジュールで通した認証を、defaultモジュールからも参照した いのですが、どのようにすればいいかわかりません。

1. AdminモジュールのIndexController
$db = Zend_Db::factory('Pdo_Mysql', $params);
$authAdapter = new Zend_Auth_Adapter_DbTable($db, 'tablename', 'id', 'pass', 'md5(?)');
$authAdapter->setIdentity('hoge')
      ->setCredential('hage');
$auth = Zend_Auth::getInstance();
$result = $auth->authenticate($authAdapter); // ここで認証を成功させる


↓続きは「本文が長い」と出て書き込めないので分割して書きます。

213 :nobodyさん:2011/06/16(木) 19:44:03.04 ID:5IgfNiWj
続きです。

2. AdminモジュールのHogeControllerへアクセス
$auth = Zend_Auth::getInstance();
if ($auth->hasIdentity()) {
  die('OK'); // OKが出力される
} else {
  die('NG');
}

3. defaultモジュールのIndexControllerへアクセス
$auth = Zend_Auth::getInstance();
if ($auth->hasIdentity()) {
  die('OK');
} else {
  die('NG'); // NGが出力される。ここでOKを出したい
}

Admin - IndexControllerで認証した結果を default - IndexController で活用したいです。
上記のスクリプトで言えば、最後のdefaultモジュールのIndexControllerで"OK"を出力したいのですが、どうすればいいんでしょうか?


214 :nobodyさん:2011/06/16(木) 19:55:04.04 ID:???
>>213
モジュール間でセッションは共有出来てる?

デフォルトでは認証結果をセッションで引き回す仕組みになっているので、
セッションが違うと認証を維持出来ないよ。

参考:Zend_Auth IDの永続性
http://framework.zend.com/manual/ja/zend.auth.introduction.html


215 :nobodyさん:2011/06/16(木) 20:51:38.65 ID:???
>>214

ご指摘いただいた通り、モジュール間でのセッションの共有ができておりませんでした。
フロントコントローラの先頭に以下の1行を追記したところ、admin・default両モジュール間でセッションが共有できるようになりました。
> session_set_cookie_params (0 , '/', 'domain.tld');

ちなみにapplication.iniに
>phpSettings.session.cookie_domain = "domain.tld"
と書いてやってみましたが、こっちはうまくいきませんでした。
application.iniの方でも動作するまでやってみたいと思いますが取り急ぎ、ご報告まで。

本当に助かりました。
ありがとうございました。

216 :nobodyさん:2011/06/16(木) 20:53:50.81 ID:???
※追記※

このケースではサブドメインでモジュールが分かれていました。
このことを先に書いておくべきでしたね。申し訳ありませんでした。

217 :zfマニア:2011/06/17(金) 00:14:33.17 ID:???
今日鯖落ちしてたの知ってるか

218 :nobodyさん:2011/06/21(火) 13:48:32.80 ID:???
今週末は毎月定例の Zend Framework Bug hunt day です。
今までずっと日本からの参加者がゼロまたは1名だけ、という状態ですが、
Zend Framework について一家言ある方はぜひ参加してみてください。

219 :nobodyさん:2011/06/21(火) 13:49:43.22 ID:???
>>218
そのurl教えてください

220 :nobodyさん:2011/06/21(火) 14:48:19.94 ID:zTIAULI/
日本語の本で、Zend Frameworkを使ってブログを作ろう、風の本はないでしょうか?

221 :nobodyさん:2011/06/21(火) 16:53:01.09 ID:???
全部英語ですが、
今月のアナウンスはこちら。
http://devzone.zend.com/article/15563-Announcing-Junes-Zend-Framework-Bug-Hunt-Days

参加ガイダンスはこちら
http://framework.zend.com/wiki/display/ZFDEV/Monthly+Bug+Hunt+Days

1.x 系列で未解決の課題がこちら
http://framework.zend.com/issues/secure/IssueNavigator.jspa?requestId=11385&sorter/field=issuekey&sorter/order=ASC

最近は カナダの Adam Lundrigan さんが頑張ってくれています。

コミッター用IRCがこちら
#zftalk.dev

本当は木曜日から開始ですが、だいたい金曜日の深夜から日曜にかけてにぎやかになります。

222 :nobodyさん:2011/06/21(火) 16:59:30.88 ID:???
>>221
対応に感謝する

223 :nobodyさん:2011/06/21(火) 23:24:50.14 ID:???
>>220
ZF徹底マスターのサンプルに簡易(?)ブログがあったような

224 :nobodyさん:2011/06/22(水) 00:22:31.74 ID:???
バージョン古そうだけど大丈夫か?

225 :nobodyさん:2011/06/22(水) 23:03:25.40 ID:02VI6IFU
XoopsCube、WordPress等のいくつかのCMSを見てきたのですが、ファイルサイズはZendFramework単体よりも小さいです。
独自のMVC構造を作った方がいいのでしょうが、大変なのでZFを使おうと思います。
その際、ZFの要らないコンポーネントを削除しても動作に影響は無いのでしょうか?
もし出来るなら、これは削除したらダメ、これは削除して使ってるというのがあれば教えていただけませんでしょうか?

226 :nobodyさん:2011/06/22(水) 23:07:07.08 ID:???
別にZFは全てのライブラリをアップロードする必要ないんだよ
所詮ライブラリの集合体だから
MVCに使うならView,Controllerだけでおk
モデルをデータベースで管理するならDbも必要になる

227 :nobodyさん:2011/06/22(水) 23:08:43.20 ID:???
容量が小さいのがいいならCodeIgniterでも使えば良い
俺は両方使い分けている

228 :nobodyさん:2011/06/23(木) 00:19:37.74 ID:???
つか今のご時世にそんなに容量に縛られないといけない案件って大変だな。
前近代的。

229 :nobodyさん:2011/06/23(木) 03:18:23.45 ID:???
レン鯖とかvps前提の儲からない案件なんだろう。よくあることだ。
データセンタに丸ごとさば置いちゃうよって提案すると確実に逃げられるしょぼい案件w

客にしてみればzf使うので数百メガ使います月額数万円ですって言われてもナットく出来ないだろうし。容量喰わずに住む方法無いの?って言われるのがをちw
手元のpcの数百ギガのハードディスク交換で数千円しか掛かってないのになんでそんなにぼったくられるんだって言われて涙目w

230 :nobodyさん:2011/06/23(木) 06:16:20.67 ID:???
月500円の共用サーバですら10GB使えるご時世で
ZFの容量を気にしないといけない案件ってどんなだよ

231 :nobodyさん:2011/06/23(木) 07:17:38.50 ID:???
数百メガ・・・?


232 :nobodyさん:2011/06/23(木) 08:17:38.71 ID:???
>>229
別に実務経験あるふりする必要ないんだから
静かに見てるだけにしときなよ

233 :nobodyさん:2011/06/23(木) 09:20:46.13 ID:???
小さいことはいいことだ
特にWeb系は
例えハードが進化したとしてもコードを出来るだけ小さくしよう、軽くしようと努力するのは当然
アクセスがデカくなればなるほど少しでも小さくしなければ
>>228-230こそ小さな案件しかしていないことが分かる

234 :nobodyさん:2011/06/23(木) 09:56:28.70 ID:???
いや単にスペースを無駄に使いたくないケチなだけの人かもしれない

235 :nobodyさん:2011/06/23(木) 10:06:11.73 ID:???
一例として、Zend_Locale_Data フォルダーの中身を削ると1メガバイト以上減るよ。
いろいろ削ってみたものを下記に置いてるので、試してみて

http://ramat.ram.ne.jp/


236 :nobodyさん:2011/06/23(木) 10:08:56.45 ID:???
ZF使うから数百メガって何の冗談だよ
何使ったらZFより遥かに100MB単位で小さくなんの?

237 :nobodyさん:2011/06/23(木) 10:30:46.91 ID:???
日本語

238 :nobodyさん:2011/06/23(木) 10:44:11.36 ID:???
APCの制限だろJK

239 :nobodyさん:2011/06/23(木) 14:58:51.33 ID:???
貧乏案件で食いつないでる香具師が釣れまくりなすれw

240 :nobodyさん:2011/06/24(金) 01:46:15.51 ID:rVNWaX5H
顧客が気にするのはレスポンスタイムだろう
容量を聞いてくる顧客とか会ったこと無いわ

241 :nobodyさん:2011/06/25(土) 17:15:35.10 ID:???
鯖の要件説明して何の疑問も持たない客しか相手にして来なかったのかw
なぜゼンドで作ってるのかすらり買いしてなさそうだなw

242 :nobodyさん:2011/06/30(木) 05:04:52.52 ID:AvEAooUw
ちょっと恥ずかしい質問なんですが、zend_dbのfetchRowメソッドの返り値が
意図したデータがあったかどうかどうやって判定してますか?

$rtn = $db->fetchRow($query); だとして、、

自分は今、 if(is_array($rtn)) echo "該当データあり";
って感じにis_arrayで判定しています。
こんなので良いんでしょうか?
fetchAllの時もあわせて教えてもらえると助かります。お願いします

243 :nobodyさん:2011/06/30(木) 09:22:50.21 ID:???
俺はこうしてる

$rows = $this->fetchAll($query);
if(!is_null($rows)) echo "該当データあり";

244 :nobodyさん:2011/06/30(木) 21:42:39.26 ID:???
fetchするのはクエリ実行後だろ?

245 :nobodyさん:2011/06/30(木) 21:50:28.46 ID:???
えっ

246 :nobodyさん:2011/07/02(土) 06:30:32.96 ID:zLDecbT7
Zend_mail使っています。トランスポートの設定で、
$tr = new Zend_Mail_Transport_Smtp('server@example.com');とか
$tr = new Zend_Mail_Transport_Sendmail('-fapache@example.com');って設定がありますが、
上がsmtpサーバを指定してるのはわかりますが、下がわかりません
-fapacheの部分を何に変えても送信できてるんですが、下の引数は何を指定してるんですか?


247 :nobodyさん:2011/07/02(土) 10:29:03.05 ID:???
>>246
envelope-fromの指定

248 :nobodyさん:2011/07/02(土) 10:35:16.84 ID:???
http://framework.zend.com/manual/ja/zend.mail.introduction.html#zend.mail.introduction.sendmail

Return Path の指定。

249 :nobodyさん:2011/07/02(土) 11:15:24.89 ID:???
サイトを構築するときによく使うクラスってViewとControllerとDBは三種の神器だと思いますが
それ以外にあなたが使うものってなんですか?

250 :nobodyさん:2011/07/02(土) 11:18:45.25 ID:???
自分のアプリ用のオブジェクトかな

251 :nobodyさん:2011/07/02(土) 14:48:07.55 ID:???
>>247,248
なるほど。zend以前の知識の問題ですね。すみませんでした

252 :nobodyさん:2011/07/02(土) 14:50:45.29 ID:???
>>249
Cache, Log

253 :nobodyさん:2011/07/02(土) 15:18:26.45 ID:???
>>249
ZFの中でよく使うクラスという質問?

254 :nobodyさん:2011/07/02(土) 16:22:44.17 ID:???
Zend_Exceptionかな
直接は使わないけどね

255 :nobodyさん:2011/07/03(日) 16:28:15.22 ID:EYOQv7h8
Zend_Filter_Word_UnderscoreToSeparator
Zend_Cloud_QueueService_Adapter_ZendQueue

256 :nobodyさん:2011/07/03(日) 21:51:49.81 ID:???
Zend_Controller
Zend_Db
Zend_Cache
Zend_Log
Zend_Mail
Zend_Http_Client

よく使う順。
CacheとHttp_Clientは再発明するのがアホらしくなるくらい良くできてる。

257 :nobodyさん:2011/07/04(月) 06:47:38.56 ID:???
Zend_Cache使ってる人、キャッシュレコード何に保存してる?memcached?
俺はZend_ConfigとZend_Sessionもよく使うなー

258 :nobodyさん:2011/07/04(月) 13:20:33.29 ID:???
>>257
ちっこい案件ならfile

中規模以上は memchaced, sqlite
どっち使うかは対象の頻度見てチューニング
キャンペーンとかで山ほどアクセスありそうなら
最初からmemcachedとかそんな感じ

259 :nobodyさん:2011/07/04(月) 15:27:37.12 ID:???
>>258
なるほどね〜
申し訳ないんだけど、参考までにmemcachedを使う規模のアクセスって
どの程度か教えてくれないですか
月間何万アクセス以上みたいな基準あるのかな、もちろんサーバの性能もあるだろうけど

260 :nobodyさん:2011/07/04(月) 15:39:19.17 ID:???
150万アクセス

261 :nobodyさん:2011/07/04(月) 17:27:51.77 ID:???
特に基準はなくて
memcachedサーバー立てる案件なら自然にって感じ
月間アクセス数より瞬間の方が気になるかな
イベント用の登録システムなんかだと
トータルでのアクセス数はたいしたことなくても
瞬間が恐ろしいことになったりするし

あとmemcachedは結構死ぬから
ものによってはsqlite -> memcachedって階層でキャッシュしてる

あんまりやりたくないけど
関数のキャッシュするのも楽なので嬉しい

262 :nobodyさん:2011/07/04(月) 20:02:38.88 ID:???
>>261
>基準無し

そうなんですか
階層でキャッシュするというのがよくわかりません
factoryの段階で、sqliteとmemcachedの二通りを用意して、
save();がこけたら代替の方に保存する/引き出し時はその逆の処理ってことですか?

263 :nobodyさん:2011/07/04(月) 20:05:55.53 ID:???
YES

264 :nobodyさん:2011/07/04(月) 20:21:16.38 ID:???
引き出し時はその逆ってどういうこと?
代替から引き出すってこと?

265 :nobodyさん:2011/07/04(月) 20:34:02.57 ID:???
そうなのか… 二通りキャッシュ用意するとその処理自体が重くなりそうだけど、
それでもやった方が良いってくらいの高負荷環境限定の処理ってことですよね
なるほど、いろいろ考えさせられるなぁ

266 :nobodyさん:2011/07/04(月) 20:35:56.77 ID:???
memcachedて死ぬの?
ttserver使ってるで知らんかったわ

267 :nobodyさん:2011/07/05(火) 12:18:25.57 ID:???
2段階で入れるのは念のためよ
もしmemcachedサーバーがこけてたらsqliteから読み込むだけ

生成がやたら重たくてキャッシュの効く処理で
しかも大量のリクエストがありそうな場合
キャッシュとしちゃmemcachedが一番だけど
memcachedは落ちることもあるので
フォローにsqlite使ってるって話

生成 -> sqlite と memcached にぶっこむ ってやって
memcachedでヒットしなかったり読み込み失敗したらsqliteで
sqliteでも駄目なら生成ってだけ
特に重たくないよ


268 :nobodyさん:2011/07/05(火) 14:24:55.38 ID:7nMaxMXk
>>267
詳しい説明をどうもありがとう

キャッシュというのを考えたことがなく作ってきたんで、今の話凄く興味深いんだけど
関数(とかメソッド、クラス)をキャッシュと、ページ全体をキャッシュの使い分けはどうしたら良いのかな?

たとえばCDの紹介ページを考えると、曲目しか書いてないページならページ全体キャッシュでいいんだと思う。
(曲目なんて変わりようがないから)
でも、「ユーザのレビュー」や「このCDに興味のある人はこちらもおすすめリスト」が同ページに配置してる
構成だとどうしたら良いんでしょうか?
ページ全体をキャッシュするのは諦めて、CDの曲目を引き出す関数と「こちらもおすすめリスト」の関数の
2つをそれぞれ個別のキャッシュ化することになるんですか?

そうして考えると、mixiみたいなSNSや今どきのCMSの構成のサービスでページ全体キャッシュなんてありえるんでしょうか

269 :nobodyさん:2011/07/05(火) 15:20:19.35 ID:???
ページキャッシュはページ単位でリアルタイム性を必要としない
例えばヘルプだとかFAQだとかトピックスだとかそういう用途に使う

と考えると使い所はそう多く無いように見えるけど
更新頻度にズレのある箇所はAjaxで取得すれば
9割がページキャッシュって事も可能
もちろんAjaxで取得するコンテンツの方も
関数だとかアウトプットだとかの断片的なキャッシュを使っておく

実態は断片的なキャッシュを行って組み合わせたのと大差無い計算量だけど
キャッシュ出来ない部分があってもjsonだので軽量なアウトプットで済むし
内容によっては要求そのものをせずに済むかもしれない
(レビューは「レビューを表示」ボタンが押されたら取得、とかで)

とにかく考慮するのは更新頻度と要求頻度で
CDの例で言えばユーザーレビューがどの程度更新されるのか
どの程度要求されるのかに応じて
どうキャッシュすべきかは全然変わってくる

毎秒更新される情報をキャッシュするのは
ミリ秒で要求が来る場合なんだろうけど
多分俺が関われる程度の機械性能じゃほぼ無意味

キャッシュでサーバーコスト削るのは楽しいよね

270 :nobodyさん:2011/07/05(火) 16:25:50.47 ID:???
なるほどなるほど、凄く勉強になりました!
やっぱり今はサービス全体のベストエフォートを実現するにはajaxの機能を織り込んで設計しないと全然ダメですね!
jsやphpの本も言語ごとの「こんなことが出来る」って機能の説明だけじゃなくて
「サーバコスト対策」みたいなテーマを揚げて、言語やソフトを横断した本があれば良いのになぁ
>>269さんは何か参考にした本あるんですか?

と、いま考えたらcontrollerを携帯(ガラケー)と共有する場合ajax依存の設計は難しいですね
でもそういうのを考えるのも面白いですね

271 :nobodyさん:2011/07/05(火) 17:34:09.84 ID:???
その辺の現場のノウハウは、文筆で飯喰ってるライタにはかけないだろうな。運用経験無いし。

272 :nobodyさん:2011/07/05(火) 17:50:23.50 ID:???
いや書籍いっぱいあるんじゃないの?
システムの設計とか運用のだったら
多分そういう本にまだ意識が向いてないから
見つけてないだけじゃないのかな
Amazonで「システム 設計」とかやるだけでぼろぼろ出るし
俺は本苦手なのでほとんどWebです

スマートフォンはまだしも
携帯はせめてコントローラー分けておいた方が良いと思う
必要な最適化はかなり違うし

273 :nobodyさん:2011/07/05(火) 18:01:51.56 ID:???
「サーバインフラを支える技術」とか、あの辺のシリーズに良いのがあるのかなー
でも大抵DBチューニングとかサーバ構成なんですよね

>携帯はせめてコントローラー分けておいた方が良いと思う

これは、そうですね。やっぱりまとめるのは無理がある… ありがとうございました

274 :nobodyさん:2011/07/05(火) 20:43:25.75 ID:???
http://www.oreilly.co.jp/books/9784873113616/
新品は入手しにくいかもしれないけれど、オライリーの
「ハイパフォーマンスWebサイト――高速サイトを実現する14のルール」
はかなりためになるよ。

クライアントサイドの処理最適化とか、ファイルダウンロード順序とか。

275 :nobodyさん:2011/07/05(火) 21:04:46.31 ID:???
ずっと買おうか買うまいか悩んでる本だ、買っちまうかな
zendと全然ズレてる話題続けて申し訳ないんだけど、
こないだmixiのアルバム機能のソース見てみたら凄かったわ
ページ全体の遷移なんてしてなくて、フォームの値だけを送信して
見た目の画面遷移はhtmlのなかにdisplay:none;で隠してるテンプレートを
jqueryで読み込んでシーンを切り替えてるのね。
バリデートも全部jqueryとajaxでやってるんじゃないかと…
使えるライブラリやコンポネントの数増やして満足とか問題外。
フロント側/サーバ側なんて区切りないもの、くじけそうになったw

276 :nobodyさん:2011/07/05(火) 21:28:06.32 ID:???
何年前から来た人ですか?

277 :nobodyさん:2011/07/05(火) 21:51:05.77 ID:???
いくらなんでも浦島過ぎると思う
さすがにbigpipeまでいくとやり過ぎだけど
体感速度の向上って必須になってるし

jquery.templateとか楽でいいんだけど
開発の管理的に面倒な部分も多いよね
素のデザイナも素のプログラマも
どんどん役立たずになってきてて
ほとんど兼任できる人間しか残らなくなってきてる


278 :nobodyさん:2011/07/05(火) 23:48:05.84 ID:???
アフィうぜえ


279 :nobodyさん:2011/07/06(水) 00:15:35.40 ID:???
>>278
どこ?w




280 :nobodyさん:2011/07/06(水) 17:57:15.87 ID:???
Zend_Service_Amazonの結果をキャッシュしようとして、
↓のように書いたのですが、上手くいきません・・・

$frontendOptions = array(
'cached_entity' => new Zend_Service_Amazon(AMAZON_ACCESS_KEY_ID, 'JP', AMAZON_SECRET_ACCESS_KEY)
);
$backendOptions = array(
'cache_dir' => CACHE_DIR
);

$amazon = Zend_Cache::factory('Class', 'File', $frontendOptions, $backendOptions);

$results = $amazon->itemSearch(array('SearchIndex' => 'Books', 'Keywords' => 'PHP'));

2回目以降にアクセスするとエラーがでて止まってしまいます。
この場合、クラスキャッシュは使えないのでしょうか?

281 :nobodyさん:2011/07/06(水) 18:51:53.53 ID:???
エラーの内容を書けよ

282 :nobodyさん:2011/07/06(水) 18:53:00.37 ID:???
あとPHPのバージョンも
まさか5.2以下じゃないよね?

283 :280:2011/07/06(水) 19:02:32.25 ID:???
>>281
スミマセン;

Warning (2): DOMXPath::query() [function.DOMXPath-query]: Invalid XPath Context [〜/Zend/Service/Amazon/ResultSet.php, line 89]

いろいろvar_dumpしてみたのですが、原因がわかりません・・・

>>282
バージョンは5.2.4です。

オブジェクトを返すメソッドには対応してないんでしょうかね・・・?
itemLookupならちゃんと動いたんですが・・・

284 :nobodyさん:2011/07/06(水) 19:31:48.68 ID:???
>>283
Invalid XPath Context でぐぐってみ。
zend.ze1_compatibility_mode=On にしてるとエラーが出るとかなんとか。

285 :280:2011/07/06(水) 20:36:24.56 ID:???
>>284
バグレポートみたいなのがヒットしましたが、いまいちわかりませんね;
1回目(キャッシュなし)だと大丈夫なんですが・・・

286 :nobodyさん:2011/07/06(水) 23:45:20.61 ID:???
>>285
2回目以降ってのが謎だね・・・
フロントエンドの automatic_serialization を有効にしても駄目?

287 :280:2011/07/07(木) 03:21:59.69 ID:???
>>286
Zend_Cache_Frontend_Classのコンストラクタで自動的に
$this->setOption('automatic_serialization', true);
になってるみたいです。

メソッドの返り値がオブジェクトで、
さらにコンストラクタが呼ばれたりしているので、そこらへんがキャッシュしきれてないんでしょうかね?

288 :nobodyさん:2011/07/07(木) 03:46:17.62 ID:???
>>287
挙動とエラー内容から推測すると、
キャッシュは出来てるけどunserializeに失敗してる感じだね・・・

試しに『DOMDocument serializable』でぐぐってみたら、
PHP組み込みのDOMDocumentはserializeableじゃない模様・・・(つA`

Zend_Service_Amazon_ResultSetもserializable実装されていないので、これが原因かも。

289 :nobodyさん:2011/07/07(木) 10:00:33.18 ID:???
PHPで組み込みオブジェクトのシリアライズがサポートされたのは5.3以降だよ。
復帰に失敗してるんだから、2回目でエラーは正しいんじゃないの?

290 :nobodyさん:2011/07/07(木) 23:44:23.28 ID:Q2g22JEq
Zend_Viewのescape()はどうやらENT_COMPATにてエスケープするようですが
ENT_QUOTESにしたい場合は、単に/View/Abstract.phpの906行め付近の
function escapeのreturn文をENT_QUOTESに書き換えればいいのでしょうか?

291 :nobodyさん:2011/07/08(金) 13:55:14.12 ID:???
>>290
そうかもしれないけどラップした自前のクラス作っておいた方がいいんじゃない?

292 :nobodyさん:2011/07/08(金) 14:20:44.43 ID:???
やっぱりスケルトンとして雛形作ってる?

293 :nobodyさん:2011/07/10(日) 16:38:13.67 ID:???
横からすいません
Windows7 64pit とXamppの環境でZendFrameworkを使ってWebアプリを作っています
modrewriteを使用しています
ビュースクリプト内でアプリケーションのベースURLを得たいと思い、
ビュースクリプト内で
echo $this->baseUrl();と言うふうに
ヴューヘルパーのbaseUrl()メソッドを呼び出したのですが返り値が空です
$baseUrl = Zend_Controller_Front::getInstance()->getBaseUrl();
この結果も空です
何がおかしいのか検討が付きません
何方か対策か代替案があったら教えてください。

294 :nobodyさん:2011/07/10(日) 17:23:54.44 ID:???
バージョン書くのはそんなにいやか

295 :nobodyさん:2011/07/10(日) 17:54:38.36 ID:???
PHPのバージョンは5.3
ZFのバーションは1.11.7です

296 :nobodyさん:2011/07/11(月) 18:06:00.05 ID:???
$baseUrl = Zend_Controller_Front::getInstance()->getBaseUrl();

これが空なのは、baseUrlがRequestオブジェクトの処理後に生成されるからじゃねえの?

ってかControllerだろうがViewだろうがvar_dump()とかprint_r()に突っ込んでみたら?

297 :nobodyさん:2011/07/12(火) 16:53:52.49 ID:???
ちょっと教えてください。

method="get"のフォームをサブミットしたときのURLはZFがデフォで取得できるパラメーターフォーマットには(当然)ならないんだけど、
method="get"でパラメーターを取得するためには、その都度Regexルーター作らないといけなんでしょうか?


298 :nobodyさん:2011/07/12(火) 18:43:36.73 ID:???
$this->getRequest()->getQuery()で取得できるんだな・・・

しかし、、、


299 :nobodyさん:2011/07/12(火) 21:09:43.74 ID:???
>>297
よくわからんけど、URLクエリの値($_GET)を取得したいなら>>298の方法が一般的。

Zend_Controller_Request_Http->getParam(); // パラメータ or $_POST or $_GETから取得
Zend_Controller_Request_Http->getQuery(); // $_GETから取得



300 :nobodyさん:2011/07/13(水) 09:56:08.29 ID:???
ルーターのRegexで値を処理するのは
きれいなURLで値を取得をする場合

そもそもデフォルトのルーティングで
ある程度は取れるようになってる

query string の取得は他の人が書いてるように
getQuery(key) や getParam(key)でやるけど
getParam()はパラメーター全てからヒットするものを返すので
見通しも安全性も下がり気味だから避けてる

301 :nobodyさん:2011/07/13(水) 20:46:47.65 ID:35EarspL
質問させてください
今以下のようにルーティング設定してるんですが、これだとアクションが増える度に設定を増やさなきゃ行けなくなります
効率的に書く方法はないでしょうか

;ユーザのhobby a
routes.user_hobby_a.route = "/user/:userName/hobby/aaa/*"
routes.user_hobby_a.defaults.module = "user"
routes.user_hobby_a.defaults.controller = "hobby"
routes.user_hobby_a.defaults.action = "aaa"
routes.user_hobby_a.reqs.userName = "\w+"
routes.user_hobby_a.type = "Zend_Controller_Router_Route"

;ユーザのhobby b
routes.user_hobby_b.route = "/user/:userName/hobby/bbb/*"
routes.user_hobby_b.defaults.module = "user"
routes.user_hobby_b.defaults.controller = "hobby"
routes.user_hobby_b.defaults.action = "bbb"
routes.user_hobby_b.reqs.userName = "\w+"
routes.user_hobby_b.type = "Zend_Controller_Router_Route"

302 :nobodyさん:2011/07/13(水) 21:15:54.26 ID:???
routes.user_hobby.route = "/user/:userName/hobby/:action/*"
という話ではなくて?

303 :nobodyさん:2011/07/13(水) 22:19:05.41 ID:???
>>302
ありがとうございます、出来ました
こうやって使うものなんですね、お恥ずかしい。ありがとうございました

304 :nobodyさん:2011/07/24(日) 16:11:17.20 ID:???
 Zend_Mail::setDefaultTransport( new Zend_Mail_Transport_Smtp( 'smtp.gmail.com', $authConfig ) );

 $mail =new Zend_Mail( 'ISO-2022-JP' );
 $mail->setFrom( $fromMailAddress, $fromName );
 $mail->addTo( $mailaddress, $toName );
 $mail->setSubject( $subjest );
 $mail->setBodyText( $body );

 //送信実行
 try {
  $mail->send();
  catch( Zend_Exception $ze ){
  die( '失敗:'.$ze->getMessage() );
 }




失敗:5.5.2 Syntax error. e6sm3408137pbm.23
って出るのはなぜ?


305 :nobodyさん:2011/07/24(日) 21:25:38.82 ID:???
http://e-words.jp/p/r-smtp.html
552 は「ディスク不足のため、要求された処理は実行不能。」なので、まずディスクを調べる必要あり。Syntax.... のほうは分からん。

306 :nobodyさん:2011/07/24(日) 23:56:22.74 ID:???
返信ありがとう。

でもSMTPのステータスコードだからローカルディスクではなくてサーバーのディスクだよね・・・。

色々見てたら
http://ichi.txt-nifty.com/bmailnews/2010/01/coreserversmtps.html

「送信したメールがFromアドレスを詐称している。」
ってのを発見。

replyをプロバイダのメアドに変更して明日やってみます。



307 :nobodyさん:2011/07/25(月) 18:50:43.44 ID:???
Zend_Validate_EmailAddressを作ると
No message template exists for key 'hostnameUnknownTld'
って例外出るんだけど・・・、
'
'hostnameUnknownTld'のメッセージテンプレートが無いよってことなんだろうけど
メッセージテンプレートってエラー時のメッセージだよね?
書いてるんだけとなぁ・・・。



308 :nobodyさん:2011/07/30(土) 20:31:38.70 ID:TaO97IVQ
CGI版のPHPでapache_request_headers()に当たるようなヘッダの取得って無理なのかな。
自前でmod_rewriteとかにほしいヘッダ分指定するしかない?

309 :nobodyさん:2011/08/01(月) 23:01:26.47 ID:???
304です。

まだ解決できてないのですが、

http://pastebin.com/zSkXdCQq

どなたか教えてもらえなでしょうか?



310 :nobodyさん:2011/08/03(水) 03:41:29.54 ID:???
まず、自前のメールサーバならうまくいくの?
うまくいかないのに変なトラフィック送りまくるのはやめたほうがいいかと。

311 :nobodyさん:2011/08/03(水) 03:44:39.16 ID:???
あと、addToがなんか変じゃない?それでも大丈夫なのかな

312 :nobodyさん:2011/08/03(水) 09:17:59.15 ID:???
>>310
>>311
お返事ありがとうございます。
304です。

addTo()のとこなんですが、
http://d.hatena.ne.jp/tomoya/20100804/1280900579
の中段付近の「555 5.5.2 Syntax error というエラー。」というとこに"<" ">" で括らないいけないという趣旨を見つけたのでこのようにしました。

以前はこのコードで正しく送信できていたのに突然送信エラーが出て原因が解決できずにいます。



313 :nobodyさん:2011/08/03(水) 09:19:36.33 ID:???
>>311
わざわざくっつけてる < > のことなら
ZendFramework が御丁寧に取り除いてくれるから大丈夫みたいだよ。

314 :nobodyさん:2011/08/03(水) 21:05:17.49 ID:jbZJg+O3
Pluginを作ろうとしてるんですが、イベントメソッドの
routeShutdown() と dispatchLoopShutdown() と postDispatch()はどう違うんでしょうか?
マニュアルも読んだんですがちょっとピンと来ません

ルーティングからディスパッチ・アプリケーション実行の流れと上記メソッドの解釈は以下であってますか?
 ルーティング:利用するモジュール、コントローラ、アクション、変数の解釈と決定をする
 → routeShutdown()はこの処理の終了を捕まえる
 ディスパッチ:その決定(ルール)通りに各ファイルを実行して画面出力する(hogeContoller.phpとか)
 → dispatchLoopShutdown()はこの処理の終了を捕まえる
 それが終わったら、ディスパッチ終了ってことになる
 → postDispatch()はこの処理の終了を捕まえる


最終的に何がしたいかって言うと、エラーコントローラをエラー発生時のモジュールに属するものを使わせたいんです。
なので、
1)エラーが発生する
2)その時のモジュール($module)を捕まえる
3)そのモジュールを$plugin->setErrorHandlerModule($module);としてエラーハンドラに当てはめる
って処理を実行できるプラグインが必要で、そのプラグインを実行するイベントメソッドは
上記のrouteShutdown() と dispatchLoopShutdown() と postDispatch()のどれが良いのか相談したいです
結論的には、試しにやってみたらpostDispatch()で上手くいってるんですが、
参考にしたオリジナルのプラグインだとrouteShutdown()なんですよね…
http://stackoverflow.com/questions/3013321/set-a-different-errorhandler-depending-on-module-zend-framework

315 :nobodyさん:2011/08/03(水) 22:47:07.09 ID:???
>>312,313
変数 $fromName の中身をローマ字だけに変えてみたらどう?
addTo とかは、パラメータからいくつかの記号(不等号含む)を除去したあと、
ヘッダ生成時に、名前の有り無しに応じて不等号をメールアドレスに付加するけど
記号を除去する際に、マルチバイトを考慮していないので、そこでおかしくなっている可能性はある。

ちなみに Zend Framework のコンポーネントのコードでは mbstring エクステンションはできるだけ使ってはいけないという掟があり、
開発者にマルチバイト圏の人が多数入らない限り覆すのは無理。
半永久的に、名前にはローマ字使用を推奨。

316 :nobodyさん:2011/08/06(土) 18:05:07.83 ID:???
zend_dbでtableをflushするにはどうすればいいですか?



317 :nobodyさん:2011/08/06(土) 23:41:59.34 ID:???
312,313です。

あちゃー・・・・
エラーの原因は送信先メールアドレスが正しく渡されていませんでした・・・・。

お返事いただいた方、おさわがせしました。


318 :nobodyさん:2011/08/06(土) 23:48:35.16 ID:???
はぁ?

319 :nobodyさん:2011/08/06(土) 23:49:14.36 ID:???
何か言うことがあるだろ?

320 :nobodyさん:2011/08/06(土) 23:49:22.13 ID:???
へぇ

321 :nobodyさん:2011/08/06(土) 23:51:01.42 ID:???
ィヒ



322 :nobodyさん:2011/08/06(土) 23:52:19.79 ID:???
>>319

お礼です。
これどうぞ!!!!!!!


http://www.exotiki.net/mjo/file/data/mai0717.jpg



323 :nobodyさん:2011/08/07(日) 00:12:02.06 ID:???
>>319

間違えました。
こっちです!!!!!!

http://www.nicovideo.jp/watch/sm10175056



324 :nobodyさん:2011/08/08(月) 17:13:27.59 ID:???
http://img.ak.impact-ad.jp/ic/yl/2011/08/yomiuri_news_maka_24-fda99453618cda179b3bda3cc8766ae532b90814.gif


325 :nobodyさん:2011/08/13(土) 16:32:41.44 ID:???
ZendDBTableでCREAT FUNCTION でストアド関数を作ってそれを使う方法を御存知でしたら教えて下さい
具体的には
http://sushiduy.plesk3.freepgs.com/levenshtein.sql
この関数(文字列1が文字列2とどれだけ似ているかの値(リーベンシュタイン距離)を返す)を使いたいです

326 :nobodyさん:2011/08/13(土) 17:46:37.17 ID:???
すいません自己解決しました
一応どうやったか書いておきます
クエリーかmyphpadminで>>325のストアド関数を登録して
コードでは
$select->where(" levenshtein_ratio(name, ? ) > 50",$str)
みたいに書いたら動きました

327 :nobodyさん:2011/08/13(土) 19:23:43.27 ID:???
ZFぜんぜん関係ないね

328 :nobodyさん:2011/08/15(月) 00:09:29.74 ID:???
>>327



329 :nobodyさん:2011/08/15(月) 00:15:16.24 ID:???
>>328


330 :nobodyさん:2011/08/16(火) 16:20:51.47 ID:jcHZicfg
質問なんですが、ルーティングで
http://module.hogehoge.com/ctrl/act/param1...
って感じにサブドメインにモジュール名を指定するパターンがありますが、
あれを使うと他のモジュールに移動する度にhttp://からの絶対パス指定しなきゃ
ダメなんですよね?

httpからのリンクさせることで、何かデメリットってありますか?
デメリットていうのは、zendの機能的なデメリットじゃなくてサイト運営上の
デメリットも含めてってことですが…

331 :nobodyさん:2011/08/17(水) 22:08:04.43 ID:???
テスト環境を用意するために
環境に応じた絶対パスのリンクを生成する関数を作らないといけないかな。
デザイナーが対応できなくてトラブルの元になるかも。


332 :nobodyさん:2011/08/20(土) 01:50:03.15 ID:???
Windows7とXamppの環境でZF 1.11を使っています
既存のコードが全てUTF-8で書かれたPC用サイトを携帯に対応させる作業をしています
最終的に出力される文字コードをUTF-8からSjisにするために以下のようなフィルターを書きました
class Zend_View_Filter_ConvertToSjis
{
public function filter($str)
{
return mb_convert_encoding($str, "Shift_JIS", "UTF-8");
}
}
これをコントローラー内で$this->view->addFilter('ConvertToSjis');と描いてフィルターに追加します
ビュースクリプトは以下のように記述しています
<?php echo $this->partial('mobile/header.phtml'); ?>
いんでっくす
<?php echo $this->partial('mobile/footer.phtml'); ?>

この状態で実行すると「いんでっくす」自体はSjisに変換されて出力されますが、header.phtml内は文字化けしたままです。
試しにfilter関数内でecho "ok";と記述してみると3回OKと表示されます。
コントローラー内のthis->view->addFilter('ConvertToSjis');を消して
header.phtml内で$this->addFilter('ConvertToSjis');と記述するとheader.phtml内の内容はきちんとSjisに変換され、「いんでっくす」は文字化けします
つまりpartialする度にフィルターが呼び出される事が問題のようなのですが、
これを防ぐ方法がわかりません。
何方か一回だけフィルターをかける方法か、代替案をご存知でしたら教えて下さい。
よろしくお願いします。


333 :nobodyさん:2011/08/20(土) 21:32:56.01 ID:???
ZFぜんぜん関係ないね

334 :nobodyさん:2011/08/23(火) 00:38:59.46 ID:???
>>331
ZFに限らず、一般的にはベースURLを取得する関数や変数を用意しておくものだよ・・・。

>>332
mb_detect_encodingもかまして、$strがSJIS以外の場合だけ変換するようにしてみな。
ViewよりResponse側でフィルタかます方が賢い気もするが。


335 :nobodyさん:2011/08/24(水) 01:50:04.19 ID:???
>>334
貴重なヒントありがとうございます!
ZendResponseについて調べてたら
答えそのものを見つけました
http://slumbers99.blogspot.com/2010/09/zendframwork.html
ほぼこのページのまま、
initResponse内でモジュール名が”mobile”以外の時はreturnするようにして
今のところ問題なく動いています。
ありがとうございました。

336 :nobodyさん:2011/09/06(火) 18:10:56.40 ID:???
Zend_Db_Table_Abstractのupdate()メソッドのSQLを見たいのですがどうすればいいですか?



337 :nobodyさん:2011/09/07(水) 19:05:51.13 ID:qU8tqwKM
> 336

Zend_Db_Profilerを使う:
(ttp://framework.zend.com/manual/ja/zend.db.profiler.html)
もしくは、Zend_Db_Table_Abstract#updateメソッドの処理をみて、コアのコードに直接var_dump($sql)とか、しちゃう



338 :nobodyさん:2011/09/08(木) 10:34:14.61 ID:???
>>337
トンクス


339 :nobodyさん:2011/09/19(月) 16:13:10.61 ID:???
Zend_Testってのに興味があるのですが、これはどんなMVC構造でも機能するのでしょうか?
それともZend_Toolとかで指定のディレクトリ構造になっていないと動作しないものなのでしょうか?

皆さんはテスト環境をどのようにお作りになっていますでしょうか?

340 :nobodyさん:2011/09/24(土) 20:34:28.12 ID:???
ZendFrameworkのCMSを見ると殆どがZend_Applicationを使用しています。
自分で当コンポーネントを調たのですがいまいち活用法、構造が分かりません。
フロントコントローラのindex.phpではなく、Bootstrap->run()により、install.php又はbootstrap.phpに記述された設定内容をメインに全体に適用しているのは分かりました。
オートローダーやルーターなど。
しかし、それ以外の利用する意図が分かりません。
これはどのような意図で使用したり、どんなメリットがあるのでしょうか?

公開ファイルindex.phpのサイズを小さくする利点はありそうですが、オートローダーなどはその時表示されるページ上では必要ないものまで呼ばれ、require_once()を個別に呼ぶよりもオーバーヘッドがありそうな気もするのですが。

341 :nobodyさん:2011/09/25(日) 21:01:29.52 ID:???
>340

Zend_Applicationのメリットについては以下が参考になると思う:
- http://d.hatena.ne.jp/noopable/20090412/1239484575

Zend_Applicationは あくまでブートストラップとリソースをどういう単位で初期化し処理するかを決定するための平均的な解決方法のためのグルーオブジェクトなので、
これが気に入らなければ(自分のアプリにとって良い方法)、自分で初期化処理を書いてディスパッチさせれば良いだけです。

実際ほとんどのプロジェクトはindex.phpで初期化+Zend_Controller_FrontのMVCによるディスパッチで事足りると思う。
zf.phpの吐き出すスケルトンがZend_Applicationをベースにしているからこれが広まったのかも。
以前(ZF.1.1ぐらいのとき)は自分でイニシャライズの為のプラグインをFrontControllerに登録していたわけだし。

俺は複数アプリを単一ディレクトリで管理したり、設定による規約を構築したり、他社モジュールを簡単に結合したいから、Zend_Applicationを使っているって感じです。

>ZendFrameworkのCMSを見ると殆どがZend_Applicationを使用しています。
>自分で当コンポーネントを調たのですがいまいち活用法、構造が分かりません。

LiveCommerceというECサイトのオープンソースが参考になるかも知れない。

>オートローダーなどはその時表示されるページ上では必要ないものまで呼ばれ、
>require_once()を個別に呼ぶよりもオーバーヘッドがありそうな気もするのですが。

んーっとどうなんでしょうね、
ちゃんと測ったことないけど、あんまり変わんないような気がしないでもない。


342 :nobodyさん:2011/09/29(木) 11:25:34.71 ID:???
Zend_Db_Table_Abstract->select()->from()で内部joinで複数のテーブルからselectしたい場合どうすればいいでしょうか?

from(
  array( 'tableA' => 'A', 'tableB' => 'B', 'tableC' => 'C' ),
  array( ほにゃらら ) 
)
とやってもだめでした。



343 :nobodyさん:2011/09/29(木) 14:06:33.80 ID:???
>>342
http://framework.zend.com/manual/ja/zend.db.select.html

344 :nobodyさん:2011/09/29(木) 14:43:38.37 ID:???
>>343
http://www.di-ve.jp/image/category_description/data/in081219_3.jpg



345 :nobodyさん:2011/09/29(木) 16:16:06.77 ID:???
>>342
$table
->select()
->from("table_a")
->joinLeft("table_b", "table_a.id = table_b.id")
->joinLeft("table_c", "table_a.id = table_c.id");

346 :nobodyさん:2011/09/30(金) 08:27:43.23 ID:???
あとjoinしたテーブルのフィールドは必要最低限を
出来るだけ列挙した方が良い。プレフィックスがつかずに
あがってくるから喧騒配列内で同名のフィールドは
ガンガン上書きされる。

347 :nobodyさん:2011/09/30(金) 08:28:31.59 ID:???
喧騒配列 → 連想配列

348 :nobodyさん:2011/09/30(金) 21:06:03.55 ID:???
FETCH MODE変えてPrefix付きで取得とか出来たらええのにね。

349 :nobodyさん:2011/10/05(水) 13:06:02.61 ID:???
ZendToolで作成したプロジェクト、そのままで普通に動きます?
ZF1.11.0でlibraryにZendコンポーネントのシンボリックリンクは張ったのですが、/public/error/errorなど、/public/index/index以外のURIに行くと全部NotFoundになるのですが
勿論moduleやcontrollerとかは全部作成しています
デフォルト以外で何か設定することがあるのでしょうか?


350 :nobodyさん:2011/10/06(木) 22:55:25.82 ID:???
mod_rewriteの設定ができてないんじゃないの

351 :nobodyさん:2011/10/07(金) 08:32:27.06 ID:???
すでに設定済みかもしれないが、デフォだとAPPLICATION_ENVがproductionになるので、htaccessとかで開発モードにしてあげるといいかも

352 :nobodyさん:2011/10/07(金) 14:20:12.80 ID:???
paginatorをちょっと利用してみたのですが、なかなかだと思いました。
これって、2chのような最新50とか前100とかできないですよね?


353 :352:2011/10/07(金) 14:22:04.64 ID:???
DbSelectを利用しています。2chのような最新50
前次ってこれは自分で作らないと難しいですよね?

354 :nobodyさん:2011/10/07(金) 20:13:15.45 ID:AMyCTNX/
皆さんの中でSmarty3、ZF1.11系を連携して上手くいっている方いますでしょうか?
特にZend_Applicationの_initView()でなのですが、自分はViewRenderer.phpの警告やら、パスを認識しないやらで
全然ダメなのですが・・・


355 :nobodyさん:2011/10/08(土) 00:06:49.44 ID:???
>>354
Zend_ApplicationとZend_Viewは使わず、
Controller側で必要なタイミングでSmartyを読み込むようにしてるわ。

特に警告も不具合もでてないよ。

356 :nobodyさん:2011/10/09(日) 03:49:47.95 ID:XVn6S9+Z
横からすいません。
ZFでZend_View使わずにSmarty等のテンプレートエンジンを使うメリットってなんですか?
PHPコードが分からないデザイナ向けと言っても
Smartyの独自タグを理解する方が大変な気がしますがそうでもないんですかね?


357 :nobodyさん:2011/10/09(日) 04:44:04.34 ID:???
以前からsmartyで運用した経験が社内にある場合、
Smartyを使う方がコストが安いかもしれない
誰もsmarty使った事ないのにzfでsmartyとかかなり無駄が多いと思うな

358 :nobodyさん:2011/10/09(日) 17:58:38.36 ID:???
ZF導入時の学習コストを減らすために、Viewは既存のSmartyを採用した。
後々Zend_Viewも検討してみたが、乗り換えるメリットが見つからなかった。
(同等の機能はSmartyで実装できていた)

他社と組む場合にSmartyでやりますの一言で意思疎通出来るのも楽だし、
テンプレートエンジンが切り分けられていれば、
デザイナのレベルを考慮せず別フレームワークを試せるのもステキ。

>>356
>PHPコードが分からないデザイナ向けと言っても
>Smartyの独自タグを理解する方が大変な気がしますがそうでもないんですかね?
PHPコードがかけても、Zend_Viewの知識が無いとテンプレート組めない。
PHPコードがかけてしまう為、人によってコード品質がバラつくし、システム側にも影響がでる。

Smartyはタグの簡略化と、セキュリティのサンドボックス化がメリットかな。
上にも書いたように、フレームワークの構文に依存しないってのもでかい。


359 :nobodyさん:2011/10/09(日) 19:13:52.38 ID:s8jfJMra
ZendFramework1.11.11とSmarty3.0.9をZFのマニュアル通りに連携させたのですが、
$this->view->foo = 'hoge';

$this->view->assign('foo', 'hoge');
等をAction内に記述し、テンプレート内で
{$foo}とすれば'hoge'が出力されます
{foreach $var as $valur}等も使用できます
しかし、{html_radios}等が
'Invalid controller specified (error)'というエラーで
/Controller/Plugin/Broker.php内などで生じるようです
どのようにすればいいのでしょうか?
また、ZFと連携した際にこれらのSmartyメソッドは使用できなくなるのでしょうか?

360 :nobodyさん:2011/10/09(日) 20:40:24.82 ID:???
>>359
それは多分、

・Smartyは正常に動いている
・Smartyの構文にミスがあり、PHPエラーが発生している
・ZendFWがエラーを感知して、ErrorControllerを呼ぼうとしている
・しかしErrorControllerが無い。

という状況だと思う。

エラーハンドラプラグインを切るか、
ErrorControllerを作ってエラー情報をdumpするか、
すればいいよ。



361 :nobodyさん:2011/10/11(火) 00:02:22.91 ID:???
ていうか、キョウビSmartyタグとかちょっとしたPHPサイトくらい
書けないと、少々の腕前くらいのデザイナじゃおよびじゃないだろ。

362 :nobodyさん:2011/10/11(火) 21:48:09.53 ID:???
ZendFrameworkを少し使ってみて思うのですが、/module/controller/actionというURIの構造は分かるのですが、
もう少し階層を深くするという場合にはどのようにすればいいのでしょうか?
例えば/module/controller/action/user/role/adminとかいう風にする場合です
ルータ設定を駆使すればいいのかもしれませんが、ちょっと自分にはどのようにして実装すればいいのか見当がつきません


363 :nobodyさん:2011/10/12(水) 01:06:01.09 ID:???
ルータを設定してuser以下がactionのパラメータとして渡るようにすればいい
>>301-302や↓も参考に。
http://codezine.jp/article/detail/2226

364 :nobodyさん:2011/10/14(金) 17:45:34.30 ID:+/AP5o7r
version1.11.10を使っていて、これまで正常に動いていたのに突然エラーがでるようになりました
簡単に言うと、session_start()するとPDOエラーが発生しているようです

エラーの詳細は以下の通りです
PHP Fatal error: Uncaught exception 'PDOException' with message 'You cannot serialize or unserialize PDOStatement
instances' in /usr/lib/php/ZendFramework/library/Zend/Session.php:469\nStack trace:\n#0 [internal function]:
PDOStatement->__wakeup()\n#1 /usr/lib/php/ZendFramework/library/Zend/Session.php(469): session_start()\n#2
/usr/lib/php/ZendFramework/library/Zend/Session/Namespace.php(143): Zend_Session::start(true)\n#3
/var/www/application/plugin/AuthPlugin.class.php(32): Zend_Session_Namespace->__construct('admin_myApp')\n#4
/var/www/html/index.php(20): AuthPlugin->__construct()\n#5 {main}\n thrown in /usr/lib/php/ZendFramework/
library/Zend/Session.php on line 469

何が原因なんでしょうか?
処理の流れとしてindex.php(フロントコントローラ)内でAuthPlugin(認証状況チェックのプラグイン)を定義していて
そのAuthPluginの中で new Zend_Session_Namespace('admin');してあり、そこから
Session.php(469行目)のsession_start()のエラーにつながってるようです
念のためテストとしてindex.phpの中で直接session_start();しても同様のエラーがでました

ググっても有用な記事が見つからなかったのですが、どのように考えたらいいんでしょうか?
ご意見よろしくお願いします

365 :nobodyさん:2011/10/14(金) 23:41:33.81 ID:???
ZFでMVCとか大規模じゃ厳しいな

366 :nobodyさん:2011/10/14(金) 23:58:11.98 ID:???
>>364
You cannot serialize or unserialize PDOStatement
instances

って書いてあるから、
sessionデータの中にPDOStatementが入っちゃっていて、
開始時にそれを復元出来ずにエラーになってるんじゃね?

一度セッションデータを破棄して、まっさらな状態で試してみ。

367 :nobodyさん:2011/10/15(土) 02:18:06.69 ID:pl58b8lQ
フジテレビデモ
花王デモ
要チェック


368 :nobodyさん:2011/10/15(土) 11:18:16.97 ID:???
>>365
当然だろ。LLなんて結局インタプリタだから規模が大きくなればなるほど
適切に事前読み込み量調整してやんないと遺憾しな。
それに潜在バグ埋もれまくり。

まぁRoRとも一定の距離を置いてるから JavaっぽいMVCって
こんなですよっつー紹介サイトにはちょうどいいな。

369 :nobodyさん:2011/10/15(土) 15:19:30.63 ID:???
そもそもphpが...

370 :nobodyさん:2011/10/15(土) 15:29:23.41 ID:???
>>366
ありがとう、解決しました

371 :nobodyさん:2011/10/15(土) 17:23:03.47 ID:???
質問させてください。
Zend_Application使用下でログを取る際に、エラーを発生させたページも書き残したいと思いました。
そこでBootstrap.phpの_initLog()にてZend_Log_Writer_Dbを使いsetEventItem()の第2引数に$_SERVER['REMOTEADDR']を入れたら、~/public/index.phpしか表示されません。
では$_SERVER['HTTP_REFERER']はとなると勿論そのページを直接開くとNULLでダメです。


372 :nobodyさん:2011/10/15(土) 17:26:16.10 ID:???
$this->bootstrap('FrontController');
$front = $this->getResource('FrontController');
$req = $front->getRequest();
$current = $req->getModuleName().'/'.$req->getControllerName().'/'.$req->getActionName();
としてもダメでした。
DBログに現在のURI、又はカラム別にaction、controller等を入れるにはどのようにすればいいのでしょうか?

373 :nobodyさん:2011/10/15(土) 20:03:11.50 ID:???
$_SERVER['REQUEST_URI']でいいんじゃなイカ

374 :nobodyさん:2011/10/16(日) 11:26:50.99 ID:TG2KkEB6
Zend_sessionで名前空間($sess_ns)を作って、その後その名前空間中で設定した
複数のセッション($sess_ns->aaa, $sess_ns->bbb, …)をまとめてクリアしたいとき
名前空間ごと削除すればOKなんですよね?
unset($sess_ns); で良いんでしょうか?

375 :nobodyさん:2011/10/17(月) 13:51:58.64 ID:???
_redirectと_forwardの使い分けを教えてください
データベース登録時にentryActionからentry.phtmlから<form action="~/insert">でinsertActionに飛ばして、
そこでデータベース登録処理を行い、リクエスト情報を引き継がせる為に_forward('entry')でPostパラメータを渡しました
ブラウザ上ではentry.phtmlの内容が表示されて良かったと思ったのですが、ブラウザの更新ボタンを押すと同じ内容が重複登録されていました
これではまずいと思ったのですが、具体的には_redirectと_forwardの使い分けはどのようにされていますでしょうか?
特に順次登録していくデータベースの場合はどのようにされていますでしょうか?

376 :nobodyさん:2011/10/17(月) 20:05:24.48 ID:???
>>375
内部的にリダイレクト ・・・ _forward
ブラウザ側でリダイレクト ・・・ _redirect

単純な画面更新による重複対策なら後者を使う。

順次登録の意味がよくわからんが、
複数画面にまたがるフォームって事なら、普通はセッションを使う。

377 :sage:2011/10/24(月) 20:34:32.99 ID:???
Zend_Aclって皆さん使ってます?
権限とかDBに入れて、if()文で仕分け、有料会員はUPDATE・・・
ってのが普通だと思うのですが、
DB接続のコストがかからない、
1ページ中にユーザによって見せていいコンテンツと見せてはいけないコンテンツがある、
同じく書き込みできるユーザとの区別
とかメリットがあると思うのですが、
Zend_Aclを使った方がいいメリットというのはこれら以外にどんな場合でしょうか?

378 :nobodyさん:2011/10/24(月) 23:05:29.81 ID:???
その仕組みのベースを一から作らなくていい。
DBと連動させて抽象的なAclとしても使える。
Zend_Controller_Actionを継承したクラスに仕組みを追加しておいて
Action単位で制御できるなどなど

379 :nobodyさん:2011/10/25(火) 07:30:17.23 ID:???
上でLiveCommerceの名前が挙がってるけど
他にZFの勉強になりそうなOSSってある?

380 :nobodyさん:2011/10/25(火) 08:44:55.21 ID:???
Aclは使って無いな・・・使えないとは言わないが・・・
そのままじゃ使えないケースが多くて、

無理矢理AuthとAclを組み合わせるなら、
自前で両方実装してしまった方が遙かに使いやすい。

381 :nobodyさん:2011/10/26(水) 01:07:32.88 ID:???
ま、Zend自体「別に使わんでもええしな」の集まりだしな・・・。

つーか、最近のSQL抽象化はだんだん邪魔に感じてきたな。
普通にSQL書いてすんなり通るのに抽象化させてバグったり
s2jdbcみたいなのならまだいいが、結局DBリファクタしたら
そこらじゅうコード書き換えることになるし・・・。

382 :nobodyさん:2011/10/26(水) 04:13:50.61 ID:???
KVSを筆頭にそもそもRDB自体が見直され始めてるからな・・・
個人的にはZend_Dbレベルの抽象化が丁度いいわ。

ZendFWは全機能使おうとすると糞重いので、
使いやすい部分だけ切り出すのがベストやね。

Controller系はもう少し単純軽量なのに置換えたい。

383 :nobodyさん:2011/10/27(木) 21:10:57.53 ID:???
ちょうどいい流れになったので書かせていただきます

自分がZFで使用しているコンポーネントは
Auth、Application、Cache、Config、Controller、Db、Http、Layout、
Mail、Log、Loader、Registry、Session、View(自分はSmarty)
こんなものなのですが、
「このコンポーネントはバグがあったり、処理速度が遅いから使わない方がいい」、
「それ使う位ならこのライブラリのこれを使った方がいい」、
「このコンポーネントはこういう使い方がお勧めなんで使った方がいい」
ってのがありましたらアドバイス頂きたいのですが

384 :nobodyさん:2011/10/28(金) 06:31:15.89 ID:???
Auth ・・・ 出来る事に対して重い。自作でいい。
Application ・・・ 思想はわかるが、これも自分で組む方が早くて軽い気がする。
Cache ・・・ 有用。必須。
Config ・・・ ケースバイケース
Controller ・・・ FrontからDispatchまでの流れが少々重い。
Db ・・・ 高機能PDOという認識。Zend_Db_Table程度の抽象化は丁度良い。
Http ・・・ 高機能だよね。
Layout ・・・ 使わない。
Mail ・・・ 使ってるけど、あまり優位性は無い。
Log  ・・・ 汎用性故に少々使いにくい。
Loader ・・・ AutoLoaderだけつかってる。
Registry ・・・ つかわない。独自クラス使ってる。
Session ・・・ 便利だけど、ちょっと重い気もする。
View ・・・ 使わない。俺もSmarty.

385 :nobodyさん:2011/10/28(金) 17:18:53.56 ID:???
Applicationは最初無駄な学習コストだと思ってたけど、結構楽で便利だけどね
殆どのCMSは使ってるし
まぁ、重いかどうかは良く分からない
勝手にAutoloadしてくれるのでいいかなと思ってる

386 :nobodyさん:2011/10/28(金) 21:59:27.07 ID:???
>379

Magento
, TomatoCMS


387 :nobodyさん:2011/10/29(土) 20:31:21.12 ID:???
Zend_Auth重い?
ソースコード見てみたけど特に複雑でもなく、重そうな処理もパッと見なさそうだけど
代わりにどんな実装してるの?
まずログインフォーム時にデータベースに問い合わせて、
セッションやらクッキーにAuth=OKとかしてページ毎に確認するとか?
まぁ、Zend_Authもデフォルトでセッションに格納してるけどね

まぁアプリケーション全体に認証を適用するにはPluginに登録して・・・ってなるのでそこは少し重くはなるだろうけど、
ページ毎に読み込み処理をする時点でそう処理速度が変わるのかな?


388 :nobodyさん:2011/10/30(日) 05:36:57.17 ID:e2iBYRcU
自分で実装した方が早いのは当たり前
フレームワークの利点はチームで作業する時に学習コストが低くなること
アプリケーション毎にプログラマが独自実装(笑)してたらメンテが大変だろ

389 :nobodyさん:2011/10/30(日) 11:47:54.69 ID:???
ZendFWは単体で使えるもの(Cache,Db,Config,Http,Session)は便利で良いが、
ほとんどのクラスは自前クラスでラップしてやらないと使い勝手が微妙。
前にも言われていたが、フレームワークを作る為のフレームワークって言葉がシックリくる。


バージョンアップ重ねる毎に、メモリ負荷が重くなってきてるのが怖い。


390 :nobodyさん:2011/10/30(日) 20:05:08.12 ID:???
ZFって、コンポーネント増えてきてますけど、これって単純にZend_Aclとか使わないものを
ディレクトリから削除したらまずいんでしょうか?
Viewヘルパーとか結構複雑にからんできているのでエラーになるのかな、と思ったり
でもライブラリを少しでも軽くしたいのですが

あと、自分はFullしかダウンロードしたことないのですが、Minimalとはどう違うのでしょうか?
単純にコメントや空白などが削除されただけとかなのでしょうか?



391 :nobodyさん:2011/10/30(日) 21:04:03.95 ID:???
>>390
試しに小物アプリ想定して、要るものだけパス通してみなよ
いらないモジュール消すのは可能だけど、何が何に依存してるのか洗い出すのは面倒、というか無意味な作業だと感じるかと

392 :nobodyさん:2011/10/31(月) 03:16:44.55 ID:???
>>390
>ZFって、コンポーネント増えてきてますけど、これって単純にZend_Aclとか使わないものを
>ディレクトリから削除したらまずいんでしょうか?

ドキュメントの以下に依存性が書いてある。
ファイル自体は削除してしまっても問題無いが、
ディスクスペースが数MB軽くなるだけなので、普通は消さない。

- Zend Framework の依存性
http://framework.zend.com/manual/ja/requirements.introduction.html


>あと、自分はFullしかダウンロードしたことないのですが、Minimalとはどう違うのでしょうか?
ダウンロードページの説明ヨメ。
http://framework.zend.com/download/current/

- Full
Contains Zend Framework, Dojo Toolkit, all demos, and all tests. Start here if you don't have a preference.

- Minimal
Contains only the components in the Zend Framework Standard Library.

393 :nobodyさん:2011/10/31(月) 16:27:00.66 ID:???
Auth, Cache, Config, Date, Db, Filter, Form, Http, Mail, Loader, Session は使うね。

Config 拡張して使ってる
Date 抽象化目的で使ってる。便利な時もあるけどオプションやら使い方覚えるのがめんどくさ
Form 遅いけどまあまあ便利。Config経由で使ってる

妙にややこしいところは嫌だな。
Zend_Form_Element_Fileとかなんなのあれ。
Zend_Fileと分ける必要あるの?

394 :390:2011/10/31(月) 17:48:31.42 ID:???
Zend_Application使ってると、Zend_Lorder使うことになるんで、あんまコンポーネントを大量に読み込ませたくないなぁと思いまして
アレッ?
そう言えばAutoloaderって先にClassを読み込んでるんですよね?
読み込み時になって読み込むんじゃないですよね?


395 :nobodyさん:2011/10/31(月) 23:41:20.30 ID:???
>>393
単にHTMLってかformタグ内の抽象化。
慣れてくれば案外使える。使えるってかZend教団、
Zend護送船団なWEBシステム作るんなら、struts1の
form beanをPHPで表現したらこんな感じになりました
って感じ。viewとの相性もいいからな。
似通った画面が多いシステムだと、結構威力を発揮する。

ただし、忘れるな。お前が使ってる言語は"PHP"ってことをな。

396 :nobodyさん:2011/10/31(月) 23:45:06.94 ID:???
あ、すまんZend_Form_Element_Fileの話か。忘れて呉。

397 :nobodyさん:2011/11/01(火) 14:44:23.42 ID:???
>>394
Autoloaderは必要な時に読込みをする。先読みはしない。


398 :nobodyさん:2011/11/03(木) 13:39:39.11 ID:???
>>397
じゃぁライブラリに大量にコンポーネントがあってもさほど関係はないという事ですね

399 :nobodyさん:2011/11/04(金) 23:24:33.19 ID:???
最近apacheのempire-dbとか言うのが目に止まって
クラス図みて、ちょっと使ってみっかと思って
サンプルみたらそのソースがZend_Dbそっくりの
抽象化で唖然とした。

やっぱこの手が流行なんかなぁ・・・。俺の理想は
ibatis→mybatis、PHPだとphpdaoあたりなんだけど。

400 :nobodyさん:2011/11/05(土) 23:38:07.90 ID:???
>>399
流行というか、低レベルラッパーとしてのリファレンス的な実装だろうね。

phpdaoは使った事ないけど、Zend_Db_Tableじゃダメなの?

401 :nobodyさん:2011/11/07(月) 23:38:13.33 ID:???
DB設計リファクタで結局entityソース触るなら
抽象化の意味があんのかな?と思う。

それにほとんどの場合、AUTO_INCREMENTとか
シーケンス使ってる弊害でDB変更したら、ソース
触るし。まぁその部分を設計時にちゃんと抽象化
していないからそうなるんだけど。

402 :nobodyさん:2011/11/08(火) 12:47:28.62 ID:???
言ってる事がよくわからないけど、

抽象化するメリットがあるか無いかを設計段階で判断して、
導入するかしないか決めればいいだけでは・・・



403 :nobodyさん:2011/11/09(水) 00:13:55.82 ID:???
INSERT IGNOREをZend_Db_Tableでどうしても使いたいのだけど
何かいい方法はありませんかね?

404 :nobodyさん:2011/11/09(水) 00:40:03.92 ID:???
いい方法と言われても、
どうしても使いたいなら継承クラス作って実装するなりすれば?


405 :nobodyさん:2011/11/09(水) 01:10:13.74 ID:???
君のが分からない気がする・・・。
君の言う判断行為はほとんどの場合、実績の有無、
上流担当者の好み、会社の方針で決まる事象に対してで、
>>401 はこのタイプの実装方法で開発効率とか
保守性に寄与すんのかなと言ってると思うのだが?

406 :405:2011/11/09(水) 01:10:55.08 ID:???
>>402

407 :nobodyさん:2011/11/09(水) 01:31:17.57 ID:???
本人じゃなきゃとんだお節介エスパーやな

408 :nobodyさん:2011/11/09(水) 02:35:04.06 ID:???
>>405
>>401 はこのタイプの実装方法で開発効率とか
>保守性に寄与すんのかなと言ってると思うのだが?

その点に関しては、少なくとも俺は恩恵を受けてるから何とも。
ただ全てに必要かと言われればわからない。
ケースバイケースに判断して導入すればよし。




409 :nobodyさん:2011/11/09(水) 08:21:50.96 ID:yE+sRBhE
非常に恥ずかしい質問なんですが
application/inc/hoge.inc.phpがあって、各コントローラ.phpの中で
require_once "inc/hoge.inc.php"; としてそのファイルを読み込めてたんだけど
php.iniや.htaccessを見たらapplicationディレクトリがinclude_pathに指定されてませんでした
なんで読み込めてたんでしょうか?
zend自体がそういう仕様だったのかな

410 :nobodyさん:2011/11/09(水) 16:39:04.59 ID:???
>>409
PHPが実行されているパスが application/ だったんじゃね?

411 :nobodyさん:2011/11/09(水) 19:14:24.82 ID:ZgH5UlUG

クッキー非対応の携帯電話からのアクセスについて質問です。

・bootstrapのプラグイン(Zend_Controller_Plugin_Abstract)のdispatchhLoopStartupにて、
 useragentでPCと携帯とスマートフォンの3種に区別しています。

・bootstrapのプラグイン(Zend_Controller_Plugin_Abstract)のpreDispatchにて、
 権限のチェック(DBにてmoduleとcontrollerとactionからresourceがあるか否か)をしています。
 権限がない場合は、ログインフォームへredirectしています。

・bootstrapのプラグイン(Zend_Controller_Plugin_Abstract)のpreDispathcにて、
 携帯の場合は、use_trans_id=1にして、URLにセッションIDを付与してます
 ※それ以外のPCとスマートフォンの場合は、use_trans_id=0で、セッションクッキーを利用。

携帯からのアクセスの場合、フォームはhiddenのセッションID、直リンクはURLにセッションID、
が付与されていて正常動作しているのですが、サイト内でセッションIDの維持ができず、どう対処しようかと悩んでいます。

やりたいことは、
携帯からのアクセスの場合、GETやPOSTのセッションIDからgetParamsでユーザIDやログイン済みか否かを取得
です。

この、取得方法について何か解決方法ありますでしょうか。
もしくは、「そもそも、そんなことしないで、こういうふうに」とかあれば。


みなさん、こんな場合、どうしてますでしょうか?


412 :nobodyさん:2011/11/10(木) 18:11:51.77 ID:tdE7yVMP
別モジュールから例外をスローしても、何故かDefaultモジュールのエラーコントローラーに行ってしまう・・・

413 :nobodyさん:2011/11/10(木) 19:41:14.83 ID:???
>>411
>サイト内でセッションIDの維持ができず、どう対処しようかと悩んでいます。
どゆこと・・・?
特別な事しなくてもuse_trans_idを有効にすればある程度セッションは機能すると思うが・・・
サーバ名からの絶対パスだったり、Locationヘッダでリダイレクトを行う場合は、明示的にセッションID付ける必要があるけど。

>>412
何故かというかそういう仕様なのでは。
ルーティング後、エラーハンドラプラグインにモジュールを指定するなりしなさい。


414 :nobodyさん:2011/11/11(金) 13:51:36.97 ID:z1VebOQP
>>413
すいません。。。いけました。
原因は、GETパラメータ無しでredirectしてましたorz

権限の承認(bootstrapプラグインのpreDispatch)のところでGETが剥がれてるのかな?
と思って、プラグイン周りばっかりチェックしてました。。。



415 :nobodyさん:2011/11/11(金) 15:33:28.05 ID:???
>>410
そうではないんですよね
なんでなんだろう、気持ち悪いなぁ

416 :nobodyさん:2011/11/15(火) 20:34:57.16 ID:???
ホント大分住んでてニュー速+みてると毎度毎度なさけなくなるよ



417 :nobodyさん:2011/11/15(火) 22:22:58.78 ID:h5gc+rfd

夜分にすみません。クエリを投げる際に同名のプレースホルダを
複数回使用する方法を教えて頂きたいです。
具体的には以下のようなコードを書いているのですが、
初回の aaa のみしか変換が行われません。

$sql = "
SELECT id
FROM table
WHERE
aaa = :id
AND
bbb = :id -- <- ここの変換が行われない
";

バインドする際には以下のように記載しております。
$bind = array(
'id' => 1
);

Zendのインスタンス->query($sql, $bind);

418 :nobodyさん:2011/11/17(木) 00:29:35.00 ID:???
>>417
$sql = "
SELECT id
FROM table
WHERE
aaa = :id
AND
bbb = :id2 -- <- ここ
";

$id = 1;
$bind = array(
'id' => $id
, 'id2' => $id
);


419 :nobodyさん:2011/11/17(木) 01:32:33.49 ID:yVlmWW7j
FWというよりMVCの初歩的な質問な気がするけど。。

同じものを意味しててもviewとmodelで、もち方が違う場合、
例えば
- DBでは 日付型 hogedate カラム
- HTMLではhogedate_year,hogedate_month, hogedate_dayに分割
この場合、view<-->modelの値の変換と
その値が正当かってチェックはどうするのがいい感じでしょ?

viewでやるとすれば、Zend_Formとかでやるんだろし
modelでやるとすれば、Zend_Db_*のどこかに書くんだろうなとは思うけど
どっちでやるのがいいのか、なんかいまいちピンと着ません

特にその日付が"過去の日付はダメ"みたいなロジックを持つ場合
それはmodelの都合だからviewにはもたせるのはおかしい気もして。


420 :nobodyさん:2011/11/17(木) 01:33:26.74 ID:???
それはビジネスロジックでは?

421 :nobodyさん:2011/11/17(木) 02:11:04.58 ID:yVlmWW7j
>>420
日付とか、値の大小とかはわりと分かり易いのですが
さらに、数字であるべき、とかアルファベットであるべきとか、
そういうのもmodelの都合って考えはおかしいでしょうか??
つまり、値に関係することは全てビジネスロジックだと。。

で、そう考えると
$hoge = new hoge( $form->get() ); //formは本来の形に戻すだけ
$hoge->save() ; //save()はチェックしてしてNGなら例外throw
みたいな感じかなぁとも思ってたのですが
Zend_Formのリファレンス見るとvalidate豊富だし
私の考え方はなんか違うのかなぁと思って。


422 :421:2011/11/20(日) 02:23:19.81 ID:U4ai7bA9
いろいろ回ってたらmodelでZend_Formを使ってるような例を見つけました。
http://mwop.net/blog/200-Using-Zend_Form-in-Your-Models
http://code.google.com/p/zendframeworkstorefront/

もしかして当たり前なことだったりすごく変な例なのかもしれませんが
私的になんとなくしっくりくので一応。。

っていうか419で書いた
>modelでやるとすれば、Zend_Db_*のどこかに書くんだろうな

っていうのはおかしくて、modelクラス?作ってそこからZend_Db_*を触るのが
本当みたいですねw


423 :nobodyさん:2011/11/22(火) 09:34:49.34 ID:KiX8FVtH
zend_fwのPDFのマニュアルってないのかな
スマホに入れて暇な時見たいんだよね

424 :nobodyさん:2011/11/24(木) 22:38:31.07 ID:???
zendfw関連の本ってやっぱユーザ少ない?からすくないのかな
最近の書籍で調べても最新2009年とか古すぎだろ・・・


425 :nobodyさん:2011/11/25(金) 00:39:12.52 ID:???
洋書を探すことをお勧めします。2010年以降にもいろいろでていますし、
来年の2月には英語の Zend Framework 2.0 クックブック、
3月にはそのドイツ語版が発売される予定です。
http://www.amazon.co.jp/Zend-Framework-2-0-Cookbook-Belhomme/dp/1849512302/

426 :nobodyさん:2011/11/25(金) 02:02:12.62 ID:???
リリース前に出版間近までいってるとは素晴らしいな
でもやっぱ日本じゃユーザ少なそうだなぁ。
それなのに案件的には多い。謎・・・


427 :nobodyさん:2011/11/25(金) 02:50:24.75 ID:???
仮に書籍が出るとしてどんな内容がいいのよ?

公式リファレンス読めば一通り理解出来るし、
他のFWと違って、ほぼピュアなPHPコードで疎結合な実装されてるから、
細かい動作を知りたければソースコードを読むのがベストだろう。


428 :nobodyさん:2011/11/26(土) 13:35:49.35 ID:???
ってことは
公式リファレンスを理解できねえ、ソースも読まねえアホ向けの本なら需要あるな

PHPは裾野が広すぎて、とんでもねえアホが使ってたりするからな


429 :nobodyさん:2011/11/26(土) 14:19:58.30 ID:???
>>423
Zendからダウンロード出来るhtmlがオヌヌメ。
あれで暇なとき、開発本線とは違う知識を貯めれた。

>>426
日本はLL案件には金出さない客大杉。
だからどうしてもCakeに流れる→Zend需要なしと勘違いされる。

430 :nobodyさん:2011/11/26(土) 14:33:06.35 ID:???
正直公式リファレンスはわかり辛い箇所が多い
フォームのデコレータなんて全然理解できなかったよ
結局海外のブログ記事で要約使い方理解した

431 :nobodyさん:2011/11/26(土) 22:26:01.85 ID:???
無料のドキュメントに文句言うなら貢献してやれよ、ゆとりくん

432 :nobodyさん:2011/11/27(日) 00:06:27.58 ID:???
>>430
ソースコード読め。
粗結合なFWで、説明の粒度を合わせるとどうしても公式リファレンスレベルになってしまう。
全てを詳細に網羅するのは不可能(それこそ英語本レベルの分厚さになる)

君の求める書籍はZendFramework本じゃなくて、 Zend_Form本になる。

433 :nobodyさん:2011/11/27(日) 03:11:32.67 ID:vrSamLR+
ソース読めば分かるでしょっていうのは
リファレンスが分かりにくいって言ってるよーなもんじゃ

オレはこういうことできますよって例が出てて
それをちょっと変えたいと思ったときに困ることが多い印象があるかなぁ


434 :nobodyさん:2011/11/27(日) 03:50:03.06 ID:vrSamLR+
使えないのはバカだとかソース読めってのはどうだろう

楽に・すばやく作るためにFW使うのに
やりたいことやるためにイチイチソース追っかけるっていうのは
FWを使う利点をひとつ消してよーな

趣味や、PHPの勉強のためのリファレンス的なFWって位置づけなら
ソースみてふんふん納得すればそれでもいいかもしれんけど


435 :nobodyさん:2011/11/27(日) 07:49:42.29 ID:Ksyi1fh0
俺はzend_formは諦めたな
使う大きなメリットってあるの?

436 :nobodyさん:2011/11/27(日) 08:13:22.69 ID:???
個人的にはヘルパーつかえりゃいいかな

437 :nobodyさん:2011/11/27(日) 12:54:22.11 ID:???
フォーム関連は使い方さえ覚えればフォーム関連を全てクラスで管理出来るから管理が楽
Zend_formとzend_decoratorとzend_filterとかzend_validate当たりをきちんと使って
役割をちゃんと分けてクラス設計するとコードがすごいキレイになるよ
フォームの受信だけじゃなくてフォームから送信された情報も同じformオブジェクトで管理できるのがすごいクール
ただ最初の構築が滅茶苦茶面倒なのと勉強大変なのがネック
アプリケーションの管理画面とか頻繁に書いてる人はやる価値あるかも

438 :nobodyさん:2011/11/27(日) 12:55:40.67 ID:???
>>437
×フォームの受信だけじゃなくて
○フォームの描写だけじゃなくて

439 :nobodyさん:2011/11/27(日) 17:43:41.90 ID:???
こういっちゃなんだけど、ZF理解できないのはまだ実力が足りないんだと思う
別に嫌味とかで言ってるんじゃないよ?
例えばXoopsとかなんてZFなんかよりずっと汚いからね
WordPressに至ってはゴミだと思うw

マニュアルが分かりにくいというのも、まだ実践が足りないんだと思う
ソースコードの例文見れば即座に使い方、何がやりたいのかとか分かるから

ま、我慢して慣れていくしかないと思うね
慣れれば自分のやりたい事、だいたい出来るから
簡単だと思うよ

440 :nobodyさん:2011/11/27(日) 17:56:40.10 ID:???
とりあえずソースコードを読めという奴は論外

441 :nobodyさん:2011/11/27(日) 19:15:40.45 ID:???
>>429
LL案件って何だ?

442 :nobodyさん:2011/11/27(日) 19:20:02.18 ID:???
P言語,JS,Ruby等のLightweight Languageって事だと思うよ多分

443 :nobodyさん:2011/11/27(日) 19:25:36.44 ID:???
なるほど

444 :nobodyさん:2011/11/27(日) 21:58:37.41 ID:???
出来の良いチュートリアルってのは大事だと思う
DjangoやってからCake使おうとしてチュートリアルで苦労したわ

ZFに限っては勘の良い人なら公式リファレンスで足りるし、チュートリアルが必要なのか微妙だが

445 :nobodyさん:2011/11/28(月) 00:15:43.16 ID:???
zendのTwitterサービスはこんがらがって結局ソース読んだ
実装終わってみると凄え綺麗に書けたからまあいいんだけど

446 :nobodyさん:2011/11/28(月) 01:23:00.83 ID:???
公式だと
twitter->status->update
だけど
statusUpdate
のがどう考えても早いよね

447 :nobodyさん:2011/11/28(月) 15:43:34.16 ID:???
リファレンスで解らない奴はソース読め。の何がいけないんだろう、
ZendFrameworkのリファレンスはサンプル付きで、大体何が出来るかまでは書いてある。

コード補完やクラス継承図を見られないエディタを使ってるような連中には、
コード読むことすら出来ないって事か。

448 :nobodyさん:2011/11/28(月) 20:40:18.61 ID:???
リファレンスの完成度が甘いからソース読まなきゃならん事になるんだろ?
つまりはリファレンスがだめと


449 :nobodyさん:2011/11/28(月) 20:47:37.53 ID:???
もうどうでもいいよ、この議論
昔から何度もあったし、飽きた


450 :nobodyさん:2011/11/29(火) 00:06:09.35 ID:???
リファレンスと、サンプルコードは違うという事を理解してない人多すぎ。

「PHP公式のリファレンスを読んだけど、ブログの作り方がわかりません><情報不足です。」

と言ってるレベル。
こんなところでごねてないで、ZendFWフォーラムにでも意見してくれば?

今度は「英語が読めません><情報不足です><糞FWだわ。」ってなるのが目に見えるが。

451 :nobodyさん:2011/11/29(火) 01:41:32.54 ID:???
日本語での情報の多さが必要ならCakeでいんじゃねーのかなあ。業務で強制されて疲れてる人が混ざってんのかな…
にしても先輩や上司と仲良くやってりゃ聞けば分かる程度の道具だろうに

あとソース読むとかワロス云々はさておいても、ZFのソース自体は単に一読の価値あるよ。
よく整理されてるし、ライブラリとして多用しても綺麗なソース保てるように配慮されてて読みやすい。依存も極力最低限になってるし。

(だからといってフルスタックなフレームワークをディスる意図はありませんので悪しからず



452 :nobodyさん:2011/11/29(火) 01:41:55.01 ID:CVBQ0R+o
むしろサンプルコードそのまま使ってるから迷わないんじゃない?

オレはデコレータまわりを取り除く方法でさんざん悩んだ
指定の仕方によっては簡単なのかもしれないけど
form->addElement( type, name, opt )のときに
MultiCheckBoxにくっついてくる<br />がどうしてもとれなくて

結局ぐぐって解決したけど
リファレンスで十分っていってる人は
どういう風にたどるのか教えて欲しい



453 :nobodyさん:2011/11/29(火) 01:55:28.54 ID:???
ごめんうちではフォームはスルーしてるわ
serviceのTwitterでなやんだときはlookupなかったぽいのでサブクラス作ってさくっと追加出来たけど、結局ソースはある程度辿ったな…

454 :nobodyさん:2011/11/29(火) 05:14:05.28 ID:???
>>452
Zend_Formを使った事無い俺が、10分弱程コードを読んだ。
あってる?

Zend_Form_Element_MultiCheckBox を見る。何も無い。
継承元の Zend_Form_Element_Multi を辿る separator を何とかすればいいのかな?と推測する。

Zend_Form->addElementを見る、
Zend_Form->createElementして、Zend_Form_Elementのコンストラクタに$opt渡してる。
Zend_Form_Element、のコンストラクタから setOptions を辿る。
$method = 'set' . ucfirst($key); で値を渡してると推測する。

$option["separator"] = ""; を渡せば解決するかも?

455 :nobodyさん:2011/11/29(火) 05:23:32.67 ID:???
cakeはググれば山ほど情報あるんだけど、プログラマが知るべき箇所を隠蔽し過ぎてて、
裏で何やってるか良く解らんのが怖かった。

importの挙動が不明で、ぐぐってみたら「凄い!便利!」と絶賛されてて仲間になれないなと思った。

456 :nobodyさん:2011/11/30(水) 19:56:28.57 ID:???
ciのリファレンスは分かりやすかったな
zfのリファレンスはフレームワーク初心者には訳わからんと思うわ
クイックスタートもZend_Application使ってるんだっけ今は

457 :nobodyさん:2011/11/30(水) 22:32:53.76 ID:???
というような意見をフォーラムに誰か伝えたり、改善作業を主導したりすると良いと思うよ :D

458 :nobodyさん:2011/12/07(水) 00:45:18.96 ID:???
>>454
うん、それでできる。

ちなみにオレが迷走したのを思い出しながら今たどってみたら
Zend_Form_Element_MultiCheckBox を見る。何も無い。
Zend_Form_Element_Radioでも<br>ついてくるので見てみる。
「それを表示するために formRadio ビューヘルパーを使用します。」の記述を見つけて
確かに、<input>そのものじゃないからなぁ、と納得して、view helperへ。

formMultiCheckbox($name, $value, $attribs, $options, $listsep)
「$listsep は、デフォルトでは HTML の改行 ("<br />") です。」

これかぁと思いつつ、こんどはviewHelperを指定する方法を確認するために
addElementへ。。

ってやってるうつにだんだんメンドになってぐぐったw


ソース見たほうが、早そうだね。


459 :nobodyさん:2011/12/07(水) 02:55:33.65 ID:???
結局ソース読んでるお仲間多いのかな
微力ながら、見つけた内容はブログの肥やしで公開してみるは

460 :nobodyさん:2011/12/08(木) 00:18:29.83 ID:???
1年位前かな、この手の話題が出たけど
結局、マニュアルなんて、有志が作ってくれてるんだから、文句なんか言えない
じゃぁお前が作れってことになったような記憶がある
Perlだって分かりにくいし、PEARよりはZFはずっと充実してるじゃないか
PHPのマニュアルは自分が色々見た中ではNO.1だと思うけど、PHPが良すぎて甘えてるのではないかと
JavaScriptなんか公式的な便利なものはそもそも存在しないし
mozillaなんか分かりにくい

>>459のような人が出てきて、皆で作っていく
それがこの世界だと俺は思っている

ちなみに俺はソースコード読んでるよ
自分が目に付いたものは全部


461 :nobodyさん:2011/12/08(木) 04:54:19.25 ID:???
Google日本語情報が多くても、
公式リファレンスが揃ってても、

仕事で導入する場合はある程度内部構造も把握しておかないと不安だし、
ソースコードを紐解くスキルはOSS使うなら必須だと思う。

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

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

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