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

Zend Framework Part3

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2009/04/10(金) 08:35:00ID:???
公式
http://framework.zend.com/

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

(有力翻訳者のm-takagiさんのver)
http://www.m-takagi.org/docs/php/zend/

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

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

前のスレッド Zend Framework Part2
http://pc11.2ch.net/test/read.cgi/php/1204726884/
06726682009/11/23(月) 16:42:15ID:???
なんか常に遅いわけでもないらしい。
一度リロードを押すと、レスポンスまで10秒ほどかかるけど、
次にリロードしたときは、一瞬で表示される。

何らかのキャッシュまわりが怪しい気がしてきました…。
とはいっても、ZFアプリケーション自体の設定は何も違わないわけですが。

まずSmarty(Zend_Viewから呼んでる)を疑って、キャッシュを消してみたけど、
特に変わらなかった。(早いときは早いし、遅いときは遅い)

DBについてはphpMyAdminとか使ってる限りはサクサク動くからこれも違うらしい。

やっぱりphp.iniとかhttpd.confとか探らなきゃダメなのかも…。

>>671
ただ単に開発環境での作業効率が落ちるからイライラしているだけで、
肝心の本番サイト自体はサクサク動くから、必ずしも大きな問題ではないわけで、
飽きて諦める可能性も大w
あんまり期待はしないで。
0673nobodyさん2009/11/23(月) 17:14:30ID:???
VM上では問題ないと言うことなので外していそうですが、
アプリ上で名前解決を行っていて、DNSからうまく引けていないとか。

はたまた、Win上にあるApacheやPHP本体が保存されている場所が
たまたまHDDが腐りかけているとか。

WinVistaやWin7ならUACが絡んでいたり?

include_pathは数よりもその順序な。ZFが先頭になかったら、先頭に持ってきてみて。
0674nobodyさん2009/11/23(月) 17:45:06ID:???
Winには特別なソフトいれてないかい?
Win+ZendFW+Smartyでシステム構築してもなんら問題なく動いてるよ。
0675sage2009/11/23(月) 17:46:58ID:???
これをみてがんばって!
http://framework.zend.com/manual/ja/performance.html

http://d.hatena.ne.jp/i_ogi/20080505/realpathcache

ちなみに、1回目と2回目で速度が違うのは、1回目は中間言語への変換が Zend Optimizer で行なわれ、2回目はその結果を再利用しているため、とも
考えられるので、あらかじめZend Guard で中間言語への変換を済ませておいてからサーバへUpload、という手もあり。
0676nobodyさん2009/11/23(月) 18:03:42ID:???
applicationフォルダとかないよ
どこにあるの?><
0677nobodyさん2009/11/23(月) 18:19:43ID:SQwNDPch
まそんなのは、再現してる限り必ず解決できる問題なので置いとくとしても。

こっちのほうが気になるんだよなあ
なんでSmarty使ってんの?
好んで使ってんの?
バカなの?
0678nobodyさん2009/11/23(月) 20:20:03ID:???
PHP使っている馬鹿がそれを言うのかw
0679nobodyさん2009/11/23(月) 21:19:23ID:???
ソースから再コンパイルして無駄な機能はそぎ落とさないとなあ。
unix系ならそういうの自動で遣ってくれてる。
0680nobodyさん2009/11/23(月) 22:52:45ID:EC5WPStk
質問させてください。(phpスレで聞いたらスレ違いと言われた話題なんですが)
ユーザー:山田さんの情報を表示するパス、localhost/user/index/uId/yamada をルーティングで
localhost/yamada とすることが出来ると思いますが、手順をどうすべきか悩んでます。
こういう場合このユーザ名(yamada)とコントローラ名がぶつかったらルーティングできないですよね?
※yamadaコントローラがあったらパラメータなのかlocalhost/yamada(/index)へのアクセスなのか
 わからないから。

と言うことは、
1)ユーザー名の登録の時に、既存のコントローラーとかぶる名前の入力を禁止する
2)ルーティング時に、uId(yamadaなど)を一つずつコントローラ名と照合
3)照合してぶつかってなければルーティング
という手順で実現するしかないんでしょうか?
もっと賢いやり方はないでしょうか。
また、サブドメインにユーザ名を入れたhttp://yamada.hoge.jp/http://localhost/user/index/uId/yamada
同じアクションを実践する処理をいちいちhttpd.conf?を操作するのでなく自動化することは出来ないでしょうか。
(zendFWの機能で。)

長くなりましたが、回答お願いします
0681nobodyさん2009/11/24(火) 00:04:19ID:???
>>680
どっちもできますよ、簡単に。
そんなに上手に質問できるのにリファレンスを読まないなんて。。
まあその辺の説明は、確かにちょっと読み辛いですが。

>>678
jsp + smarty で何かいいことありますか? と同じ質問なのでは
0682nobodyさん2009/11/24(火) 07:13:43ID:???
>>664
ボランティアだと面倒見切れないので有料になるけど、何万円ならOK?
0683nobodyさん2009/11/24(火) 21:02:46ID:???
はいはい
0684nobodyさん2009/11/24(火) 21:56:30ID:???
Zendに手をつける前に、Cakeを学んできた方がいいですか?
0685nobodyさん2009/11/24(火) 22:49:25ID:???
いや、Zendをやりたきゃすぐやったほうがいい。
PHPのフレームワークなんて学ぶってほど難しくないし。
てか、なぜCakeが?
0686nobodyさん2009/11/25(水) 12:30:12ID:???
Zendは、テンプレートファイルでPHPの終了タグを省略するから、Eclipseで書いてると文法エラー出まくりになる...orz
Cakeはそんなことない
0687nobodyさん2009/11/25(水) 12:41:55ID:???
Eclipse使わなきゃいいだけ
viでゴリゴリ書け
0688nobodyさん2009/11/25(水) 12:59:56ID:???
Eclipseってしょぼいんだな。
0689nobodyさん2009/11/25(水) 13:13:13ID:???
アラートの設定も知らないでEclipseを使ってる人って初めて見た
0690nobodyさん2009/11/25(水) 13:36:07ID:???
別に省略しなくてもいいんじゃないの
俺は省略してないけど
0691nobodyさん2009/11/25(水) 17:29:57ID:???
省略することが推奨
?> があることによるケアレスミスを防げるから
0692nobodyさん2009/11/25(水) 17:43:49ID:???
?>云々はZendというよりPHPの仕様だからどっちでもいい
0693nobodyさん2009/11/25(水) 19:34:32ID:???
cronで某所のhtmlファイルをZend_Http_Clientを使ってダウンロードしてるんだけど、php5.2.9 から php5.2.11 にアップデートしたら 'Invalid chunk size "" unable to read chunked body'って例外がでて半分くらい取得出来なくなったんだ。なぜだろう?
CentOS5.4 x64 で、phpはソースからコンパイル
0694nobodyさん2009/11/25(水) 19:44:36ID:???
chunk sizeがInvalidなんだろ
0695nobodyさん2009/11/25(水) 20:36:58ID:???
確かにそうだね…どうすれば、だったね。
まあ、アップデートしなければいいわけだけど、今後もそうだと困るし
0696nobodyさん2009/11/27(金) 00:18:27ID:???
情報弱者が多いな。この仕事向いてないから転職したらw
0697nobodyさん2009/11/27(金) 07:45:30ID:???
今の時代ググれば何でもでてくる。
0698nobodyさん2009/11/27(金) 07:47:37ID:???
>>697
信頼性は保証されないけれどね
0699nobodyさん2009/11/27(金) 08:01:20ID:???
もって4,5年ってとこか
0700nobodyさん2009/11/27(金) 12:00:17ID:???
>>699
君の勤め先のこと?
0701nobodyさん2009/11/27(金) 13:41:08ID:???
この仕事に未来はないな
0702nobodyさん2009/11/27(金) 14:39:48ID:yRRBxbeQ
>>691
?>があることによるケアレスミスってどんなの?
0703nobodyさん2009/11/27(金) 14:41:43ID:???
<?php
if (false) {
$ret = "俺は天才";
?>
} else {
$ret = "俺はバカ";
}
0704nobodyさん2009/11/27(金) 14:44:30ID:???
>>703
噴き出したw
そんなの普通に気をつけてればオッケーだろ〜
0705nobodyさん2009/11/27(金) 14:47:55ID:???
>>702
?>以後にある空行が出力されて、header()でエラーが出るとか。
0706nobodyさん2009/11/27(金) 14:50:43ID:???
>>705
なるほど…他にもあるかな
もっと勉強しなきゃいけないな、ありがとう
0707nobodyさん2009/11/27(金) 22:20:07ID:???
>>701
考え方次第だと思う。
東南アジア諸国との間のブリッジSE に転向してみては?
0708nobodyさん2009/11/27(金) 22:23:43ID:???
>>707
ほんとお前らって口だけだよなw
0709nobodyさん2009/11/27(金) 22:56:07ID:???
口以外は営利活動で出すんでしょ
0710nobodyさん2009/11/27(金) 22:58:30ID:???
707が焦ってるようで吹いたwwwwww
0711nobodyさん2009/11/28(土) 09:33:24ID:???
>>708
っというか指先(w
0712nobodyさん2009/11/28(土) 11:30:24ID:???
話し変えるけど(w もう 2.0 RoadMap はご覧になってます?>ALL
http://framework.zend.com/wiki/display/ZFDEV2/Zend+Framework+2.0+Roadmap
0713nobodyさん2009/11/28(土) 17:51:29ID:XeoSRoiL
$session = new Zend_Session_Namespace('test');

セッションの値を読み込むとき、スクリプトごとに
毎回 new でインスタンスつくんないといけないの?

$_SESSION みたいに使えないの不便じゃない?
0714nobodyさん2009/11/28(土) 19:01:04ID:???
オブジェクト指向完全否定ですか
0715nobodyさん2009/11/28(土) 22:52:39ID:???
見ていて思うけど、皆さんストレスたまっている?
0716nobodyさん2009/11/28(土) 23:01:19ID:???
こんなフレームワーク使ってるからストレス溜まるんだよ
0717nobodyさん2009/11/28(土) 23:21:28ID:???
フレームワークじゃなくてPHPのせいじゃないのかね
0718nobodyさん2009/11/29(日) 13:30:12ID:???
そんなPHP上のフレームワークだからイライラしてるんだ。…あれ?
0719nobodyさん2009/11/29(日) 14:29:07ID:???
>>713
$controller->session->xxxxx でアクセス出来るようにでもすればいいんじゃないの。
$_SESSIONより遙かに便利。
0720nobodyさん2009/11/29(日) 16:18:20ID:???
使うときだけインスタンス立ち上げるようにしないとか流石PHPプログラマだな
0721nobodyさん2009/11/29(日) 16:38:54ID:???
WEBプログラミングってちょっと勝手が違うじゃなん
0722nobodyさん2009/11/29(日) 18:40:31ID:???
>>709
IRC の #zftalk.dev でコミットログも分かるから、一度見てみることをお勧め
0723nobodyさん2009/11/29(日) 19:19:33ID:???
>>720
セッション使うなら99%インスタンス作るだろw
0724nobodyさん2009/12/03(木) 21:49:45ID:3lsXGt7/
ちょうどZend_Sessionの話題が出てるんで質問させてください。
フォームの入力>確認>修正という画面遷移でZend_Sessionを使いたいです。
そこで、確認画面でクエリ情報を丸ごとセッションに入れて、
その後の修正画面にセッション情報を持ち越したいんですが上手くいきません
以下の手順でおかしいでしょうか?

class FormController extends Zend_Controller_Action {
public function init(){
}
public function indexAction(){
$params = $this->getRequest()->getParams();
$mode = $params['mode'];//入力画面モード(入力、確認、修正)を確認
if(!$mode){//入力画面
$sess1 = new Zend_Session_Namespace('form');
}
if($mode == "確認"){//確認画面
Zend_Session::start();
//セッションに送信値をまるごと格納---#1
$sess1->postAry = $params;
var_dump($sess1->postAry);//これは中身がある
}
if($mode == "修正"){//修正画面
Zend_Session::start();
//↓これがNULLになっています。#1の値が入ってるつもりだったんですが
var_dump($sess1->postAry);
}
}
}
単純なことかもしれませんが、ハマってしまいました。宜しくお願いします。
0725nobodyさん2009/12/03(木) 22:07:40ID:???
えっと、変数はですね・・・オブジェクトを格納した・・・
リクエストのmodeで判定しちゃうとですね・・・
とりあえず、
var_dump($sess1);
をまずはやってみたら?
それから、関係ないけど$this->_getParamsというのもある。
0726nobodyさん2009/12/03(木) 22:23:18ID:???
おまえら、ZendFrameworkベースのlivecommerceなるものが出たぞ。
0727nobodyさん2009/12/03(木) 22:42:25ID:3lsXGt7/
>>725
早速ありがとうございます
$modeってのは<input type="submit" name="mode" value="修正" />みたいに
フォームのボタンとして設定されているパラメータなんです。確認画面/修正画面などシーンの判別は上手くいっています。
それとは別の問題だったらすみません。説明不足だったかもしれないです、すみません。

var_dump($sess1);のテスト、やりました。
 if($mode == "確認"){
  Zend_Session::start();
  var_dump($sess1);以下略
でも
 if($mode == "修正"){
  Zend_Session::start();
  var_dump($sess1);以下略
でもNULLです

これって、画面遷移した時に入力画面の $sess1 = new Zend_Session_Namespace('form'); で作ったオブジェクト($sess1)は
消えてるからNULLで当たり前ってことですよね

だとしたらなぜ 確認画面で実行してる $sess1->postAry= $params;がエラー起こさないんでしょうか。

うーん、わからない。どうやったら各画面にセッションデータを引き継げるんでしょうか?
Zend_Session::start();しておけば、名前空間オブジェクト$sess1を引き継げると思ってたんですが
そうではないってことは間違ってないですよね…?
07287272009/12/04(金) 00:55:54ID:???
解決しました
セッション値読み込む度にインスタンスつくるって仕様だったんですね
>>713さんからの流れを地道に確認してれば済むことだったのに予想外過ぎて…
スレ汚しすみませんでした
0729nobodyさん2009/12/09(水) 17:18:54ID:anat6YPp
すみません、ZendFrameworkのリファレンスって本家以外には無いのでしょうか?
例えばSearchで_headerなんか(http://framework.zend.com/manual/search?query=_header&language=all&search=Search+Manual!)を調べても、なかなか自分の思ったようなものが出てきません

PHPやPEARのマニュアルのようにパラメータとか、返り値、構文等が出てくるものを期待しているのですが、無いのでしょうか?
CakePHPはリファレンス本があるようですが、ZFは無いようで・・・
0730nobodyさん2009/12/09(水) 20:37:29ID:???
>>729
http://framework.zend.com/apidoc/core/
07317292009/12/09(水) 21:04:55ID:???
>>730
申し訳ございません
このサイト、どのように使えばいいのでしょうか?
以前>>1に書かれていたので行ったのですが使い方が分かりませんでした
0732nobodyさん2009/12/09(水) 21:59:06ID:???
>>731
バカ?
0733nobodyさん2009/12/09(水) 23:10:19ID:???
MSDNやJavaDocとかと使い方ほぼ同じだろ
0734nobodyさん2009/12/10(木) 18:41:05ID:???
中小規模サイト向けって言ってるけど意味不明
どういうこと?
機能のことを言ってるの?
0735nobodyさん2009/12/10(木) 19:43:33ID:???
意味不明なら素直に従っておけばいいのでは
いろんなフレームワーク使って作っているうちに解るよ
ちなみに一人で全部やるなら何使っても同じ
0736nobodyさん2009/12/11(金) 02:44:29ID:???
一人で遣るなんて手が回らなく成るだけだから、商用サポート受けられるのにしとけ。
趣味で遣るなら、駄目なら乗り換えるで居心地いい所に落ち着くまでは苦労が続くのが普通。

http://pc11.2ch.net/test/read.cgi/php/1253912143/
【PHP】PHPフレームワーク総合スレ14
http://pc11.2ch.net/test/read.cgi/php/1172328149/
2ch有志がPHPフレームワークを作るスレ
0737nobodyさん2009/12/11(金) 03:02:24ID:???
中規模って言っても素人が想像する大規模サイトくらいのことだから問題ないよ
大規模ってのはそれこそYahooとかあんなレベルだから
ECサイトとかオークションとかあんなくらいなら普通に中規模
0738nobodyさん2009/12/11(金) 08:44:01ID:???
フレームワークが必要だな、と感じたら中規模以上
0739nobodyさん2009/12/11(金) 11:52:51ID:???
必要と感じるのは能力次第な事も有るから何とも。
PEARだけでSNS作っちゃうスーパマンも居るだろうし、フレームやCSS生成にフレームワーク必須レベルも居るだろうし。
0740nobodyさん2009/12/11(金) 12:16:14ID:???
技術力あるからフレームワーク使わないとか
そう言うことじゃないと思う
0741nobodyさん2009/12/11(金) 12:33:25ID:JAvSDZev
フレームワーク使うと約束事ができるから、ある程度人数多くても管理しやすい。

0742nobodyさん2009/12/11(金) 14:37:08ID:???
>>741
それはあるね。
でも、新しいフレームワーク使うときは教えるのに一苦労。
後輩からちょっと変わったこと聞かれて、
「今忙しいから後でいい?」
と答えたくせに、裏で必死こいて調べるとかw
先輩面すんのも楽じゃないぜ。
0743nobodyさん2009/12/11(金) 14:38:42ID:???
えっマニュアル充実してるじゃん
調べたら解るから自分でやりなよ

でいいのでは

Symfony除く
0744nobodyさん2009/12/11(金) 14:59:07ID:???
そりゃマニュアルに書いてあることならググレカスで終わりだけどさ、
いろいろやってると訳わからん不具合も出てくる。
システム担当者が俺だから責任持ってやらんとならんのよ。
0745nobodyさん2009/12/11(金) 15:07:39ID:???
>>744
別にあなたがシステム担当者とか誰も知りたくないです。。
0746nobodyさん2009/12/11(金) 15:28:34ID:???
プログラマなら自分で解決できないとなんの成長もせんだろ
不具合出るたびに担当者に投げるプロジェクトってなんだよw
0747nobodyさん2009/12/11(金) 16:00:25ID:???
別に不具合出るたびに聞きに来てるわけじゃないよ。
それにすぐこの業界は「自分で調べないと成長しない」というけど、
会社としてチームとしては聞きにきてくれたほうがいい。
そうすればたいがい10秒で終わる。
仕事時間が増えれば体力を消耗するし、残業になれば余分に金がかかる。
自分で長い時間かけて問題に取り組めば知識や技術が身につくが、
そんなもん会社でやるべきことじゃない。
少なくとも忙しいときにそんなことやってはいけない。
なぜなら会社は利益を上げることが第1の目的だから。
会社で新人がまず学ばなきゃならないのは、どうやって金を稼ぐかってこと。
日本のIT業界に関係する人間はその部分が弱すぎる。
コスト計算さえできないのにSEを名乗ってるバカが多すぎなんだよ。んったく。
おっと私怨失礼。
0748nobodyさん2009/12/11(金) 16:17:00ID:???
>>747
なら最初っから、身についてる奴を雇えよ (笑)
0749nobodyさん2009/12/11(金) 17:30:20ID:???
View Helperを継承したクラスで、View Helper呼び出し元のViewを参照する事はできますか?
0750nobodyさん2009/12/11(金) 23:20:12ID:???
ViewHelperにsetViewが実装してあれば、Zend_ViewはsetView($this)してくれる
0751nobodyさん2009/12/12(土) 12:39:05ID:???
>>750
ありがとうございます。
ちゃんと考えて作られてたのですね、素晴らしい!
検索してみたらこんなページがあったので貼っておきます。

ttp://codezine.jp/article/detail/2929

0752nobodyさん2009/12/13(日) 02:14:28ID:???
ビュースクリプトで public/images/hoge.jpg を表示させたいのですがうまくいきません
コントローラーで表示させないといけないんでしょうか?
0753nobodyさん2009/12/13(日) 02:23:10ID:???
<img src="public/images/hoge.jpg">
0754nobodyさん2009/12/13(日) 02:31:08ID:???
<img src="/images/hoge.jpg">
publicディレクトリはドキュメントルートじゃないの
07557522009/12/13(日) 03:51:18ID:???
>>753
>>754
返答ありがとうございます.でもやっぱりできませんでした.
ディレクトリの構造はZend Framework推奨のものにしています.
画像だけならコントローラー内で
$response = $this->getResponse();
$response->setHeader('Content-Type', 'image/jpeg');
$response->setBody(file_get_contents('./images/temporary-closed.jpg'));
で読み込めたんですが
これだとビュースクリプトの内容が表示されなくて困ってます.
07567522009/12/13(日) 03:54:25ID:???
>>755ミスです
コントローラ内の画像がhoge.jpgでした
$response = $this->getResponse();
$response->setHeader('Content-Type', 'image/jpeg');
$response->setBody(file_get_contents('./images/hoge.jpg'));
0757nobodyさん2009/12/13(日) 04:03:33ID:???
あたりまえだろ…
どこから説明していいか迷うわ
0758nobodyさん2009/12/13(日) 12:20:48ID:???
これはひどい
0759nobodyさん2009/12/13(日) 19:43:28ID:???
ワロタ
もし本気ならContent-Typeはultipart/mixedだぞw
0760nobodyさん2009/12/13(日) 19:57:29ID:???
なんかもうね。
こういうのが聴いて来られても無駄に成るだけのタイプ。
自分で調べないから、成長しないしねえ。仕事出来る人の時間を消耗するだけだから、チームとしてのパフォーマンスが堕ちる。
0761nobodyさん2009/12/13(日) 20:06:02ID:???
>>760
お前とチームになった覚えはない
07627522009/12/13(日) 20:50:29ID:???
調べてもわからなかったので質問してみたんですが.
もっと勉強してからにします.
変な質問してすみませんでした.出直してきます.
0763nobodyさん2009/12/13(日) 21:35:29ID:???
いや、いい質問だったと思うよ
ZFでドキュメントルート外の画像等に認証を書けたり、画像を変換してから
送出する方法を知りたいわけでしょ。
Cakeでもそういう話は出てくるけど、重いからねぇ、その処理。

ちなみに、ZFのResponseオブジェクトは標準ではバイナリは扱えないから、
オレオレResponseオブジェクトを作ればいい線いくと思う。
0764nobodyさん2009/12/13(日) 21:40:41ID:???
Controller内で
$this->_helper->viewRenderer->setNoRender()
Layout使ってるなら
$this->_helper->layout()->disableLayout()

すれば何の問題もない。
バイナリ使えないとかいっちゃうおじさんの話は聞いちゃだめ。
0765nobodyさん2009/12/13(日) 22:58:00ID:???
>>763-764
> これだとビュースクリプトの内容が表示されなくて困ってます.
0766nobodyさん2009/12/13(日) 23:10:24ID:???
>>764
はぁ?
Zend_Controller_Response_AbstractでStringにキャストされるんだが、
それでも、sendResponseで画像が送れるとでも?
0767nobodyさん2009/12/13(日) 23:25:40ID:???
>>766
え、、俺のサイトで何の問題もなく送れてるけど。。
そもそも文字列(バイナリ)を文字列にキャストして別物になるとか、、
だいじょうぶ?

<?php
$file = file_get_contents('http://www.google.co.jp/intl/ja_jp/images/logo.gif');

echo md5($file)."\n";
echo md5((string)$file);

/*
4ecc2708ed3a513b22f7ca108a96fc0c
4ecc2708ed3a513b22f7ca108a96fc0c
*/
0768nobodyさん2009/12/13(日) 23:30:36ID:???
ちょっと小学校からやりなおしてくるわ。
0769nobodyさん2009/12/13(日) 23:44:31ID:???
>>766
質問者も画像は出てるんだろ
でないのはビュースクリプトの内容であって
だからみんなスクリプトにimgタグ挿差込めって最初言ってたわけで
0770nobodyさん2009/12/14(月) 02:35:57ID:???
ZF2.0って何か劇的に変わるの?
0771nobodyさん2009/12/14(月) 19:15:06ID:???
PHP5.3のnamespaceに移行予定。
過去のバージョンとの互換性は完全に無くなる。
■ このスレッドは過去ログ倉庫に格納されています