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/
0703nobodyさん
2009/11/27(金) 14:41:43ID:???if (false) {
$ret = "俺は天才";
?>
} else {
$ret = "俺はバカ";
}
0709nobodyさん
2009/11/27(金) 22:56:07ID:???0710nobodyさん
2009/11/27(金) 22:58:30ID:???0712nobodyさん
2009/11/28(土) 11:30:24ID:???http://framework.zend.com/wiki/display/ZFDEV2/Zend+Framework+2.0+Roadmap
0713nobodyさん
2009/11/28(土) 17:51:29ID:XeoSRoiLセッションの値を読み込むとき、スクリプトごとに
毎回 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:???0718nobodyさん
2009/11/29(日) 13:30:12ID:???0719nobodyさん
2009/11/29(日) 14:29:07ID:???$controller->session->xxxxx でアクセス出来るようにでもすればいいんじゃないの。
$_SESSIONより遙かに便利。
0720nobodyさん
2009/11/29(日) 16:18:20ID:???0721nobodyさん
2009/11/29(日) 16:38:54ID:???0724nobodyさん
2009/12/03(木) 21:49:45ID:3lsXGt7/フォームの入力>確認>修正という画面遷移で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:???0727nobodyさん
2009/12/03(木) 22:42:25ID:3lsXGt7/早速ありがとうございます
$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を引き継げると思ってたんですが
そうではないってことは間違ってないですよね…?
0728727
2009/12/04(金) 00:55:54ID:???セッション値読み込む度にインスタンスつくるって仕様だったんですね
>>713さんからの流れを地道に確認してれば済むことだったのに予想外過ぎて…
スレ汚しすみませんでした
0729nobodyさん
2009/12/09(水) 17:18:54ID:anat6YPp例えば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:???http://framework.zend.com/apidoc/core/
0731729
2009/12/09(水) 21:04:55ID:???申し訳ございません
このサイト、どのように使えばいいのでしょうか?
以前>>1に書かれていたので行ったのですが使い方が分かりませんでした
0733nobodyさん
2009/12/09(水) 23:10:19ID:???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:JAvSDZev0742nobodyさん
2009/12/11(金) 14:37:08ID:???それはあるね。
でも、新しいフレームワーク使うときは教えるのに一苦労。
後輩からちょっと変わったこと聞かれて、
「今忙しいから後でいい?」
と答えたくせに、裏で必死こいて調べるとかw
先輩面すんのも楽じゃないぜ。
0743nobodyさん
2009/12/11(金) 14:38:42ID:???調べたら解るから自分でやりなよ
でいいのでは
Symfony除く
0744nobodyさん
2009/12/11(金) 14:59:07ID:???いろいろやってると訳わからん不具合も出てくる。
システム担当者が俺だから責任持ってやらんとならんのよ。
0746nobodyさん
2009/12/11(金) 15:28:34ID:???不具合出るたびに担当者に投げるプロジェクトってなんだよw
0747nobodyさん
2009/12/11(金) 16:00:25ID:???それにすぐこの業界は「自分で調べないと成長しない」というけど、
会社としてチームとしては聞きにきてくれたほうがいい。
そうすればたいがい10秒で終わる。
仕事時間が増えれば体力を消耗するし、残業になれば余分に金がかかる。
自分で長い時間かけて問題に取り組めば知識や技術が身につくが、
そんなもん会社でやるべきことじゃない。
少なくとも忙しいときにそんなことやってはいけない。
なぜなら会社は利益を上げることが第1の目的だから。
会社で新人がまず学ばなきゃならないのは、どうやって金を稼ぐかってこと。
日本のIT業界に関係する人間はその部分が弱すぎる。
コスト計算さえできないのにSEを名乗ってるバカが多すぎなんだよ。んったく。
おっと私怨失礼。
0749nobodyさん
2009/12/11(金) 17:30:20ID:???0750nobodyさん
2009/12/11(金) 23:20:12ID:???0751nobodyさん
2009/12/12(土) 12:39:05ID:???ありがとうございます。
ちゃんと考えて作られてたのですね、素晴らしい!
検索してみたらこんなページがあったので貼っておきます。
ttp://codezine.jp/article/detail/2929
0752nobodyさん
2009/12/13(日) 02:14:28ID:???コントローラーで表示させないといけないんでしょうか?
0753nobodyさん
2009/12/13(日) 02:23:10ID:???0754nobodyさん
2009/12/13(日) 02:31:08ID:???publicディレクトリはドキュメントルートじゃないの
0755752
2009/12/13(日) 03:51:18ID:???>>754
返答ありがとうございます.でもやっぱりできませんでした.
ディレクトリの構造はZend Framework推奨のものにしています.
画像だけならコントローラー内で
$response = $this->getResponse();
$response->setHeader('Content-Type', 'image/jpeg');
$response->setBody(file_get_contents('./images/temporary-closed.jpg'));
で読み込めたんですが
これだとビュースクリプトの内容が表示されなくて困ってます.
0756752
2009/12/13(日) 03:54:25ID:???コントローラ内の画像が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:???こういうのが聴いて来られても無駄に成るだけのタイプ。
自分で調べないから、成長しないしねえ。仕事出来る人の時間を消耗するだけだから、チームとしてのパフォーマンスが堕ちる。
0762752
2009/12/13(日) 20:50:29ID:???もっと勉強してからにします.
変な質問してすみませんでした.出直してきます.
0763nobodyさん
2009/12/13(日) 21:35:29ID:???ZFでドキュメントルート外の画像等に認証を書けたり、画像を変換してから
送出する方法を知りたいわけでしょ。
Cakeでもそういう話は出てくるけど、重いからねぇ、その処理。
ちなみに、ZFのResponseオブジェクトは標準ではバイナリは扱えないから、
オレオレResponseオブジェクトを作ればいい線いくと思う。
0764nobodyさん
2009/12/13(日) 21:40:41ID:???$this->_helper->viewRenderer->setNoRender()
Layout使ってるなら
$this->_helper->layout()->disableLayout()
すれば何の問題もない。
バイナリ使えないとかいっちゃうおじさんの話は聞いちゃだめ。
0766nobodyさん
2009/12/13(日) 23:10:24ID:???はぁ?
Zend_Controller_Response_AbstractでStringにキャストされるんだが、
それでも、sendResponseで画像が送れるとでも?
0767nobodyさん
2009/12/13(日) 23:25:40ID:???え、、俺のサイトで何の問題もなく送れてるけど。。
そもそも文字列(バイナリ)を文字列にキャストして別物になるとか、、
だいじょうぶ?
<?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:???質問者も画像は出てるんだろ
でないのはビュースクリプトの内容であって
だからみんなスクリプトにimgタグ挿差込めって最初言ってたわけで
0770nobodyさん
2009/12/14(月) 02:35:57ID:???0771nobodyさん
2009/12/14(月) 19:15:06ID:???過去のバージョンとの互換性は完全に無くなる。
0772nobodyさん
2009/12/14(月) 20:15:24ID:???0773nobodyさん
2009/12/15(火) 17:44:35ID:???0774nobodyさん
2009/12/16(水) 08:05:51ID:???Cakeは画期的でphp知らない人を対象にした感じだったけど
ZFはphpが出来る人を対象にしたような印象だった
0775nobodyさん
2009/12/17(木) 10:39:14ID:???この値を以下のようにビュースクリプト内で条件分けして表示したりしなかったりしてるんですが、
<?php if ( $this->hogeflag ) { ?>
<!-- # 表示するものがあるなら-->
<?php echo $this->hogemsg ?>
<?php echo $this->hogemsg2 ?>
<?php echo $this->hogemsg3 ?>
<?php } else { ?>
<!-- # 何も表示しない-->
<?php } ?>
これを、どのページでもやりたいって思いました。
この場合、全部のアクションコントローラに、
モデルの結果を$this->viewに代入っていう処理を追加していかなきゃいけないのでしょうか?
アクションごとってのはさすがにあれなので、コンストラクタで行ってしまうとか?
いいやり方が無いかなぁと思って、
自作ビューヘルパを作って、モデル呼ぶのとか上記部分を中でやるってことも考えたのですが、
これだとページのデザイン変更時にビュースクリプトではなくビューヘルパの方を変えないといけなくなってしまうので
デザイナーの方が困るようです。
何かいい方法ありますでしょうか?
0776nobodyさん
2009/12/17(木) 10:42:20ID:???複数のコントローラに跨がるならスーパークラス作る
0777nobodyさん
2009/12/17(木) 11:52:20ID:???似たようなレイアウトのページをいくつも作らないといけない場合、
今はビューヘルパのスーパークラスを作って、継承したサブクラスでページを出力しているんだけれども、
もっとスマートか方法があるんじゃないかなと常々思っていまして。
0778775
2009/12/17(木) 13:06:25ID:???スーパークラス化というのですか?共通の基底コントローラを挟もうと思います。
※基底コントローラ
class DefaultController extends Zend_Controller_Action {
public function init() {
// 共通初期処理
$model = new GetHogeModel;
$this->view->hogeflag = $model->getflag();
$this->view->hogemsg = $model->getmsg();
$this->view->hogemsg2 = $model->getmsg2();
$this->view->hogemsg3 = $model->getmsg3();
// 継承先初期処理へ
$this->init2();
}
public function init2() {
}
}
※他のコントローラ
class IndexController extends DefaultController{
public function init2() {
//コントローラごとの初期処理
}
public function indexAction() {
echo $this->view->render("hoge/index.html");
}
}
こんなイメージでいいんでしょうか???
0779nobodyさん
2009/12/17(木) 13:37:26ID:???サブクラスでinitをオーバーライドして、オーバーライドしたinitメソッド内でparent::initすればいい
0781nobodyさん
2009/12/17(木) 16:02:16ID:???0782nobodyさん
2009/12/17(木) 16:19:54ID:???0784nobodyさん
2009/12/17(木) 17:03:41ID:???他のオブジェクト指向なフレームワークや言語でも応用できる方法だから
あんまりZendべったりじゃなくて俺は好きだ
0785nobodyさん
2009/12/17(木) 17:57:23ID:???0786nobodyさん
2009/12/17(木) 18:14:18ID:???0789nobodyさん
2009/12/17(木) 18:41:00ID:???プログラミングは発展してるじゃん。
楽したいと思うのは当然のことだ。
いや、プログラマの権利だね!
0790nobodyさん
2009/12/17(木) 19:00:47ID:???0791nobodyさん
2009/12/17(木) 19:01:22ID:???0792nobodyさん
2009/12/17(木) 19:49:58ID:???0794nobodyさん
2009/12/29(火) 16:05:32ID:VOALtVVE教えてください。
ZendDB使ってfetchallとかした場合に
SQLエラー、DBエラー、正常終了だけどゼロ件
など考えられますが、その処理の分け方がよくわかりません。
0795nobodyさん
2009/12/29(火) 17:24:07ID:???try-catcheでZend_Db_Exceptionをとれば分かると思うが
俺はSQLエラーとDBエラーの区別まではやってない
データ無しは返り値をcount()すればよいかと
0796nobodyさん
2009/12/29(火) 17:42:55ID:VOALtVVEレス感謝。
Zendといってもやり方は普通でいいんですね!
0798nobodyさん
2009/12/31(木) 11:20:51ID:???他人の設計を見ると、いろいろ参考になるな。
0799nobodyさん
2009/12/31(木) 12:48:19ID:???0801nobodyさん
2009/12/31(木) 13:34:59ID:???0802nobodyさん
2010/01/01(金) 16:40:50ID:A1Hlzrb8来年もよろしくなぁ!みんな
ありがとうZendFramework!!!!!!!!!!!!!!!!!!!!!!!!!!
■ このスレッドは過去ログ倉庫に格納されています