1read 100read
2011年11月2期WebProg19: Zend Framework Part5 (427) TOP カテ一覧 スレ一覧 2ch元 削除依頼

Zend Framework Part5


1 :11/02/11 〜 最終レス :11/11/25
公式
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 :
AKB48の画像!!!
http://ameblo.jp/rusenu2/

3 :
これお願いします
ttp://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1255175377

4 :
マルチ乙

5 :
知恵袋の回答者の質が悪いからしょうがないんです

6 :
smarty公式サイトで紹介されてたsmarty+ZFの連携
http://www.gediminasm.org/article/smarty-3-extension-for-zend-framework

7 :
そもそも、なんでPHPにSmarty見たいのが必要なのか分からない

8 :
ずーっとPHP使い続けるんならいいけど、そのうち他の言語に移るんだからテンプレート使っててもいいじゃん

9 :
楽になるしね。

10 :
前スレの993へ
ドキュメントルートにapplicationを作る場合
.htaccessにDeny from allを書いてapplicationに入れれば問題ない

11 :
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 :
>>8
他の言語のFWでもsmartyが使えるならいいけど、他は他で独自テンプレじゃん。
無意味。

13 :
ZFスレって盛り上がらないね
ひょっとしてZFはオワコン?

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

15 :
>>11
使ったことないし、テストもしてないんで適当だけど。
Captcha画像生成用のアクション用意してimgタグで表示させてみたら?
>>14
http://framework.zend.com/manual/ja/zend.db.profiler.html
FirebugとFirePHPの組み合わせがおすすめ、実行時間も取れるのですごく便利

16 :
IEで使いたい

17 :
>>15
おー、こんな便利なクラスがあるのか、ありがとう

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

19 :
EclipseでPDTでのPHPのように、ZFの関数などを補完してくれるプラグインだとかテンプレートライブラリとか無いでしょうか?
ちょっとZend_Xxxxx_Xxxxxとか打つのが手間がかかり、後、毎回打ち間違うのも避けたいので
ネットで検索しても出てこないような気がします

20 :
レイアウトスクリプトのビュー変数を設定するのはどうすればいいのでしょうか>
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 :
20です。
勘違いしてました。解決しました。

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

23 :
お世話になります。
MySQLにレコードを登録するプログラムを組んでいます。
ブラウザからアクセスしてプログラムを実行すると
ちゃんとDBに登録されるプログラムを
コマンドラインで実行するとエラーが出てしまいます。
エラーには
SQLSTATE[HY000]: General error: 2053
と表示されます。
その他にも
Zend_Db_Statement_Pdo->fetchAll()
でエラーが発生しているかのように出ておりました。
エラーを解消するにはどの様にすればよろしいでしょうか。
よろしくお願い致します。

24 :
>>19
俺もそれ思って、Zend Studioの評価版をダウンロードしてテンプレート、コードアシスト部分だけエクスポートしようと思ったんだけど
どうやればいいのか分からなかった
設定欄には何も表示されないんで
誰かZend StudioからEclipseに入れる方法知りませんか?
>>22
ん?どういう事?
include pathってのが分からないんですが(PHPではなくEclipseのinclude pathですよね?)具体的にはどうするのですか?

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

26 :
>>25
ありがとう
知らなかった
それならPEARなんかも出来そうですね
バージョンは最新版です

27 :
>>24
既存のEclipse環境があって、そこにPDT部分を統合したい、という話だったら使えない手だけれど、
そうじゃなかったら、
試用期限切れのままこっそり使う、という手もある。

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

29 :
>>23
パスが通ってない。多分php.iniが見えてないのが原因なので
php -c [iniのパス]
とすれば大概いける。ダメなら環境変数で頑張る。

30 :
期限来れたらPDTと同等品

31 :
こっそりというか普通に使っておk

32 :
>>30
あっ、PDTと同等になるんですか・・・
となると、ZFプロジェクトなんかが作成できなくなったり、ZF関数のコードアシストが無くなるんですね?

33 :
期限が来ると有償部分のプラグインがつかえなくなる。
日本語はPleiadesじゃない方のやつがいいと思う。

34 :
日本はZF流行らないね

35 :
ZF理解できるようなレベルの人間が少ないだけだと思おう
世の中のPHP使ってるって人もPHP自体もたいして出来ないんじゃない?

36 :
ウェブデザの片手間言語から脱出してないからな。
perlで組むのは無理過ぎるからphpってだけ。フォーム投稿とかcgiレベルのphpが多いし。
db遣う以前のレベル。

37 :
perlだと何かいいことあるのか?

38 :
CGIと言えばperlみたいな時代があったから
使える人間が多いってだけで
別にperlが優れてるというわけじゃないでそ

39 :
むしろPerlは老害の使いたがる言語

40 :
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 :
>your PCRE extension does not support UTF8

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

43 :
なんで人をなめた口調になってるの?

44 :
>>41
ありがとう。
やっぱりzendというよりPHPの方になんかインストールしたりして対応するしかないんだ?
うーん、やってみる。ありがとう

45 :
>>40
http://www.mycurse.net/tag/pcre/

46 :
Zend_Log_Writer_Streamがfopenのあとflockしてないんだが
おかげでログが消えて酷い目にあった
これZend_Logのバグだろ

47 :
>>45
ありがとうございます。読んでみます、ありがとう。

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

49 :
flock するにしても fopen の後じゃなくって fwrite の直前だろ
しかし flock しないせいでログが消えたってどんな環境なんだ?
出力が混ざるとかいうならわかるんだが。

50 :
ZendDbでテーブルの情報を引き出したいんだけど、どうすればいいかわかりません。
_metadataはどこから取れますか?

51 :
Zend_Db_Table_Abstract クラスのinfo()メソッド

52 :
馬鹿にはzfは無理。

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

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

55 :
タメ口

56 :
>>51
助かりました。ありがとうございました。

57 :
10000件ほどのデータを取得する場合
fetchAll()を使うよりも
fetch()を使ったほうがパフォーマンスはよくなりますか?
fetchAll()はフレームワーク側で
fetch()を行数分繰り返して、配列にいれているようなイメージがあるので、
fetch()で取得した後に、自分でループ内で処理を行っていったほうが
配列を作成する処理が省略できてメモリの消費量も
減るのかなと思っています。
如何でしょうか?

58 :
君の目の前の箱を使えば5分で試せるだろ

59 :
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 :
Zend FrameworkでXMLのパースってどうされてます?
Zend_xmlみたいにあればいいんですけど・・・

61 :
そんなのフレームワーク使うか?w
ZF使う時点でphp5前提だと思うからsimpleなんちゃら使えばいいだろ?w

62 :
>>59
有効期限が設定できるのはあくまでキー単位。
別のnamespaceを作ってやればいいだけでは?
$apples = new Zend_Session_Namespace('apples');
$apples->green = 'green apple';
$apples->red = 'red apple';
$apples->setExpirationSeconds(5, 'green');
みたいな。
こっちの方がスマートじゃないかい?

63 :
>>62
ありがとうございます
やっぱりそうみたいですね、素直に個別にキーを作ることにします

64 :
メモリ消費量は
100MBほど節約できました。
etchAll()を使わずにfetch()を使用する意外にも
メモリの節約やパフォーマンスの向上を図れる技法ってありますか?
データベースのインデックスの張り方とか意外で、
ZendFrameworkもしくはPHPで出来る方法として何かあれば
アドバイス頂きたいです。
SQLでは*は使用せずに
カラムを指定するといったことは行っています。
よろしくお願いします。

65 :
メモリは消費できた、結構。
速度は?

66 :
>>64
printを使わずechoを使う
もっと節約するなら文字を表示するところは?>〜<?phpな風にする

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

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

69 :
>>68
仕事を通じて引っかかったところがあったので検証もしてみたけど、
「PHP パフォーマンスチューニング」でググれば他にも大量に出てくるからまずそこから調べた方がいい。
ちなみに俺もほとんど独学だし、先輩から教わった事なんて仕事として使うときの
エラー処理取り扱い方くらいしかない。
ただのTIPSやチューニング方法なんていちいち本に書く内容じゃないし。
こういう知識はググる、検証してみる、バグトラック見てみる、元のソース読んでみるしかない。
後者の方は時間のあるときにやってみると色々勉強になるよ。

70 :
PHP「だけ」できればいいやと思ってると身に付かない

71 :
>>69
なるほど、ありがとう。助かったよ

72 :
>>67
変数の破棄ってどうやるの?
unsetとか意味あるのかな?

73 :
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 :
>>73
ああ、それね
専用のメソッドがあってそこで条件判断すればおk
>$this->_helper->viewRenderer->setViewSuffix('html');
について
俺はその情報は知らないからマニュアルのどのページに書いてあるのかurl張って教えて欲しい
教えてもらえるなら俺ももうちょっと詳しく教える
テイク&ギブでどうかな

75 :
views/scripts/ 位置が基底ディレクトリだから
$this->render('bar/fuga');でできたと思うが

76 :
>>74
おまえその書き込みはテイクしてないぞ

77 :
日本語読めない人は黙ってたほうがいい

78 :
>>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 :
何でそんな難しくやろうとするんだろうか
もっと簡単にできんのに
とりあえず俺74だから

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

81 :
ちょっとかじって驚いた。
Cakeは糞だと思う。

82 :
フレームワークって名乗ってるからそういう用途としては使いにくいと思うけど
Zendが作ってんのにね

83 :
Zend_Dbって
where A AND (B OR C)
が作れない?

84 :
>>83
->where('`A` = ?', $a)
->where('(`B` = ?', $b)
->orWhere('`C` = ?)', $c)

85 :
おーぅアクロバティック

86 :
ZFでサイト構築するのってやめたほうがいい?

87 :
おすすめだお

88 :
>>84
そんな書き方がw
ありがとう

89 :
Zend Framework の Full Package を小分けにしてダウンロードできるようにしてみた。
http://ramat.ram.ne.jp/
それから、Pleiades に抵抗を感じる >>28 のために PDT 2.2.0 日本語化パックをおいとく。
被災者支援活動につかってちょ

90 :
http://framework.zend.com/manual/ja/zend.db.adapter.html
ここのdeleteのところに
> 三番目の引数に配列の配列を提示すると、 値は自動的に引用符で囲まれてキーに入れられます。
> そしてこれらは条件として結合され、 AND 演算子で区切られます。
って書いてあるんだけど、実際に第三引数を入れても完全に無視される
メソッドも引数を二つしか受け取ってない
誰か報告よろ

91 :
自分でしろ

92 :
ZFコマンドでcreate actionした後、そのactionを削除する場合は
どうしたらよいのでしょうか?
単にcontrollersのactionメソッド部分と、actionビューファイルを削除する
だけでよいのでしょうか。
それともzfproject.xmlを再構築するような処理が必要になるのでしょうか?

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

94 :
>>93
レスありがとうございます。
英語はよくわかりませんけど、
zfコマンドで作ったactionやviewを削除したら、zf
コマンドでzfproject.xmlを再構築する方法はない。
zf ver.2 ではその機能を実装するよきっと。
てな感じでしょう。
93様、ありがとうございました。

95 :
わからないとか言ってちゃんと英語読めてるじゃないかw

96 :
きっとこの人はZF使っててもPHPは分からないという謙虚な方なのでしょう

97 :
ZFを使うのに適したIDEは何がお勧めでしょうか?
NetBeansを使ってみましたが、ZFのコマンドが簡単に
使えるようにサポートされていて、良さそうでした。
でも、ZFならZend本家のPDTが良さそうな気がしますし・・・
どちらがよいのでしょうか?

98 :
>でも、ZFならZend本家のPDTが良さそうな気がしますし・・・
じゃそれ使えば良いだろw

99 :
>ZFを使うのに適したIDEは何がお勧めでしょうか?
つ Zend Studio

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼