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

Zend Framework Part4

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/02/09(火) 22:21:24ID:???
公式
http://framework.zend.com/

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

翻訳状況
http://mikaelkael.dyndns.org/checker/language/details/lang/ja
http://framework.zend.com/wiki/display/ZFDEV/Japanese+(Nihongo)

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

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

前のスレッド Zend Framework Part3
http://pc11.2ch.net/test/read.cgi/php/1239320100/
04524492010/09/17(金) 12:21:09ID:???
一応ページはここね
http://devzone.zend.com/article/12322
0453nobodyさん2010/09/17(金) 14:55:33ID:???
公式と言っても、そのサイトはPHP関連の技術全般を紹介するブログみたいなもので
ZendがDwooを特別にプッシュしてるわけではないのでは?
0454nobodyさん2010/09/17(金) 15:27:29ID:???
Vikram Vaswaniさんがこういう使い方もできますよって紹介記事書いてるだけだな
SoftwareDesignとかWeb+DB Pressの記事みたいなもんだ
0455nobodyさん2010/09/17(金) 17:17:36ID:???
>>449
それ言ったらsymfonyだって解説してたわけだが
0456nobodyさん2010/09/18(土) 00:21:20ID:???
>>449
それ言ったら公式ドキュメントにはSmatryViewの作り方まで載ってるぜ
0457nobodyさん2010/09/18(土) 03:15:59ID:HoVONag+
質問なんだけど、リクエストオブジェクトで $_FILESに当たるものを取得するにはどうしたらいいの?
無理なのかな。無理だとしたらどうやって取得すべき?
getParam('picture')とかやったんだけど無理だった。すみませんが教えてください
0458nobodyさん2010/09/18(土) 13:16:26ID:???
Zend_Form_Element_File を調べて、関連記事から他人がどうやってるか見るよろし
0459nobodyさん2010/09/19(日) 00:06:18ID:uSiTgTXw
>>458
ありがとうございます
しかしzend_formって扱いにくいんで使ってないんだけど、$_FILESの制御のために導入するなんて…
みんなzend_form使ってるの? そんなに便利?
0460nobodyさん2010/09/19(日) 00:27:48ID:iCptYkYB
>>459
ドキュメント読もうぜ。
http://framework.zend.com/manual/ja/zend.file.transfer.introduction.html
0461nobodyさん2010/09/19(日) 03:19:18ID:???
馬鹿にはzendは無理。
0462nobodyさん2010/09/19(日) 04:20:52ID:???
>>457-
>無理なのかな。無理だとしたらどうやって取得すべき?
Zend_Formを使っていないのであれば、
リクエストオブジェクトを継承した$_FILESも取得出来る子クラスを作るのが良いかと・・・
(もし必要であれば、その子クラス中でZend_Formを使えばいいし)
0463nobodyさん2010/09/19(日) 17:59:19ID:???
Zend_OpenIdの
TODO: OpenID 2.0 (7.3) XRI and Yadis discovery
がなくなってたから、
yahoo.co.jpやmixi.jpでログインテストしてみたんだけど、
エラーになっちゃう・・・

まだ対応してないのかな?
0464nobodyさん2010/09/22(水) 17:02:23ID:???
ところでさ、Zend Framework とその後ってぶっちゃけどうよ
おれもそこそこ使ってきたけど、新規案件で使うべきか迷ってる
使うなら、2.0を試すべき?
0465nobodyさん2010/09/23(木) 00:18:04ID:???
>>464
今まで使っていて新規案件で使わない理由は?
0466nobodyさん2010/09/23(木) 01:19:05ID:???
オートロード楽チン
ブートストラップ書けば大抵どうにかなる
ビューが無駄に適当でPHPそのまま
中のクラスが単体でも呼べる
外部モジュールのラッパークラスが多い

粗結合いいとこ取りだけどなんかperlぽい気がするんだよね
0467nobodyさん2010/09/23(木) 02:38:04ID:???
>>459
ZendFormは確かに使いづらいけども、他に選択肢がなくね?
ZendForm使わないで、フォームどうしてるの?
煽りとかじゃなくて普通に疑問なんだけど、
↓こんな感じなの?

<select name="Hoge">
<option value="1" <?php if ($value == 1) echo "selected"; ?>>
<option value="2" <?php if ($value == 2) echo "selected"; ?>>
</select>
0468nobodyさん2010/09/23(木) 02:52:30ID:az/C8i5M
>>467
View Helper 使えばいいんじゃね?
0469nobodyさん2010/09/23(木) 02:59:54ID:???
>>467
sfForm
0470nobodyさん2010/09/23(木) 04:12:58ID:???
えっフォームの部分だけSymfony使うの?
0471nobodyさん2010/09/23(木) 04:36:38ID:???
ZendFormはオブジェクト組み立ててバリデータだけ使ってる
0472nobodyさん2010/09/23(木) 08:21:59ID:???
>>470
symfony使わなくてもフォームだけ抜き出して使える
0473nobodyさん2010/09/23(木) 10:21:11ID:???
>>465
リリースタイミング的にphp5.3もしくは6でメンテ&追加開発していくので、
そのメリットを生かせるFWにしようかと。
0474nobodyさん2010/09/23(木) 10:45:19ID:???
え?PHP6て白紙になったやつだけど?
0475nobodyさん2010/09/23(木) 14:16:25ID:???
そうだったね。ってことでphp5.3なんだけど
04764592010/09/23(木) 16:26:48ID:???
>>467
smartyと組み合わせてる。
zendformとsmartyが共存出来るかわからないけど、
smartyで自前の関数用意して
<select name="prefecture">
{$val|selecterChk:"prefecture"}
</select>
とかなんとかやって呼び出して解決する方法になれすぎちゃってzendFormに
入れなくなっちゃった。
0477nobodyさん2010/09/23(木) 16:40:00ID:y1pwafIu
zend_dbのdeleteメソッドについて質問させてください。

以下のdelete処理を実行したところ
-----------
 echo "picTblId>>".$picTblId;
 echo "reportId>>".$reportId;

 $where = array(
  $this->_dbConn->quoteInto('id=?', $picTblId),
  $this->_dbConn->quoteInto('reportId=?', $reportId)
 );
 $retP = $this->_dbConn->delete($t_pic, $where);
========

以下のエラーが出ました。
-----------
 picTblId>>7
 reportId>>41

 SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax;
 check the manual that corresponds to your MySQL server version for the right syntax to use
 near 'WHERE `id` ='41' AND `reportId` ='41'' at line 9
========

エラー文の中で、`id`='41'ってなってるのが理解できません。7のはずでは?
また at line 9 となっていますが、このクエリ処理を書いているモデルファイル(.php)は
2000行くらいあって、この処理は9行目なんかに書いていません。
実際の9行目はクラスの宣言部分です。
どう考えたら良いのでしょうか、ご意見お願いします。

php5 ZF1.10です。
0478nobodyさん2010/09/23(木) 17:11:52ID:???
とりあえず、quoteIntoの返り値を見てみたら?
で、9行目ってのはSQL文の9行目じゃね?
04794772010/09/23(木) 18:00:12ID:y1pwafIu
>>478
おお、どうもありがとうございます!

 $where = array(
  $this->_dbConn->quoteInto('id=?', $picTblId),
  $this->_dbConn->quoteInto('reportId=?', $reportId)
 );
 var_dump($where); 

としたところ、
array(2) { [0]=> string(6) "id='7'" [1]=> string(13) "reportId='41'" }
となりました。ちゃんと入ってる…

>で、9行目ってのはSQL文の9行目じゃね?
納得です。
生成されたクエリ文を表示する方法はないんでしょうか?
04804772010/09/23(木) 18:55:24ID:???
すみません、解決しました。
詳細は下らな過ぎて書きませんが自分の凡ミスでした。

一つだけ気になってるんですが、Zend_dbクラスでの deleteメソッドで生成されるクエリ文を
確認する方法はないんでしょうか?
Zend_db_tableのselectメソッドだと __toStringを使って出来ますよね?
それに似たものはないのかなと… 
0481nobodyさん2010/09/25(土) 13:12:44ID:???
>>476
なるほど、既存のリソース(pluginだっけ?)を生かせるし、そういうのはありですね。

偏見かもしれないけど、ZendのFormはせっかくPHPが柔軟な言語なのに、
なんか無理矢理オブジェクト指向にしてる気がする。

まあ確かに利点もあるとは思うけど、場合によってはデメリットも目立つよね。
べた書きなら数行で済むような簡単なフォームでもZendFormだと数十行になっちゃう事とかあるし。

特にSmartyと組み合わせる前提なら、ZendFormとは相性が悪いし、デメリットばっかりになりそう。
0482nobodyさん2010/09/25(土) 13:25:53ID:???
>>480
実行後でいいなら、profilerでできる気がする

$profiler = $dbAdapter->getProfiler();
var_dump($profiler->getQueryProfiles());

俺はdbAdapter直接触るような場合はいつも直接SQL作成して
$dbAdapter->query($sql);
でやってる。
これなら実行前にdumpなりなんなり出来るし。
0483nobodyさん2010/09/25(土) 19:28:24ID:???
adapterって実行したクエリを全部保存してるの?
状況によっては、すごいメモリ食いそうだけど
0484nobodyさん2010/09/25(土) 23:16:09ID:???
>>483
あ、factoryメソッドのオプションでprofile = trueみたいに指定する必要はあるね。
いつも開発環境では常にtrueにしてるから気づかなかった。
0485nobodyさん2010/10/09(土) 15:33:32ID:1KEL8kwG
質問です
zendDBでinsertなりupdateなりdeleteなりが正常に処理できたか確認したいんだけど
みんなどんな方法でやってますか?
しらべたらrowCountを見つけたけど、他に方法ないですか?
0486nobodyさん2010/10/09(土) 17:17:01ID:???
何を持って正常と判断するかは、ロジック次第なので何とも・・・
0487nobodyさん2010/10/09(土) 17:37:49ID:c5ynP6XY
過去レス読めばいいのかもしれんけど、ちょっと知りたい事があります。
今までフレームワーク無しでPHP使ってきたんだけど、最近ZendFrameworkを使ってみようかと思っています。でも、いまいち踏み切れません。(CakePHPのほうがいいのかな? と思ったり)

ZendFrameworkのメリット/デメリットを教えてもらえませんか?
0488nobodyさん2010/10/09(土) 17:55:35ID:???
>>487

CakePHPにZendFramework組み合わせて使うのは?
0489nobodyさん2010/10/09(土) 18:53:54ID:1KEL8kwG
>>486
単純に、insertならちゃんとデータが登録されたか、updateなら変更されたか
そういうことを確認したいんです
それが確認出来るメソッドというか機能は備わってないんでしょうか?
0490nobodyさん2010/10/09(土) 19:21:03ID:???
>>489
返り値が0かどうかじゃだめなの?
0491nobodyさん2010/10/09(土) 21:46:07ID:???
>>487
かなり偏見かもしれないが、良くも悪くも
・CakePHPはウェブアプリケーション開発のためのFW
・ZendはPHPプログラムのためのFWって感じで、PEARの集まりみたいな感じ

web開発するにあたって、cakeならすんなりできる部分も、
Zendなら色々classを呼び出すなり、子クラス実装するなりしなきゃいけなかったりする。
Zendの方がハードルが高いのはまあ間違いない。
0492nobodyさん2010/10/09(土) 22:19:17ID:???
とりあえずcakeはormがしょぼい。
0493nobodyさん2010/10/09(土) 22:27:33ID:v6/8xFVg
>>489

lastInsertId() とか使えばいいんじゃないの。
http://framework.zend.com/manual/ja/zend.db.adapter.html#zend.db.adapter.write.lastinsertid
0494nobodyさん2010/10/10(日) 01:21:37ID:???
>>488, >>491
ありがとうございます。
CakePHPとZendFrameworkは思想そのものが違う感じなんですね。

使いやすさを除いた、たとえばWebサービスや通常のサイトを作ったときの速度はどうでしょうか?
もちろん、それぞれの規模やプログラマ/エンジニアの腕によって大きくばらつくのはわかりきってるのですが・・・
どうしても「フレームワーク=ソースコードが太る」というイメージがあるので、実際に使って開発した感想も聞きたいです。

PHPプログラムはZendFrameworkの方が向いているということなので、一旦はZendFramweorkに挑戦してみたいとは思いました。
繰り返しの質問になりますが、よろしくおねがいします。
0495nobodyさん2010/10/10(日) 01:32:12ID:???
場合に寄るから自分で試せよ
0496nobodyさん2010/10/10(日) 01:49:57ID:???
>>494
数年前と比べて、最近はハードウェアが高性能化してるからな・・・
「フレームワーク有りと、無しでは実行速度が2倍違う」と仮定しても、
0.01秒が0.02秒になるようなレベルで、体感速度は変わらない。


開発チームがフレームワークに慣れれば開発効率は数倍跳ね上がる。
コード肥大化による動作速度の低下を下げたいなら、
その人件費をハードウェアにつぎ込む方が低コストかつ、運用も楽。

そんな感じ。
0497nobodyさん2010/10/10(日) 05:06:02ID:???
CPUの高性能化は頭落ちしてる。
0498nobodyさん2010/10/10(日) 05:06:59ID:???
ごめん。頭打ちだった。
0499nobodyさん2010/10/10(日) 08:03:13ID:???
>>494
人にもよるだろうけど、開発が早いのはcakeだと思うよ。

簡単なプログラムつくるならFW使うとソースは増える。
0500nobodyさん2010/10/10(日) 15:40:37ID:???
>>497
ヒント:クラウド
0501nobodyさん2010/10/10(日) 17:09:41ID:???
>>497
VPS十台借りても1万くらいだし

最初は一台で作って
重くなってきたら役割ごとに分割
それでも重いなら並列化
って感じで増やしてけば対した問題じゃない

もちろん、負荷、売上がちゃんと整合性取れる範囲の話だがフレームの問題じゃなくなる
0502nobodyさん2010/10/10(日) 22:37:53ID:???
ケースに因るんだ。本当に負荷の高いサイト、FacebookなんかはPHPをHipHopでバイナリにしちゃうし、Yahooはロジックをエクステンションに追いやってる。
ZendとかCakeとか、この手のPHPのフレームワークは負担が大きいので使わない。
0503nobodyさん2010/10/10(日) 23:39:03ID:???
>>502
ケースに困る?
YahooとかFacebookとか・・・君の請ける案件はそんなに大規模な案件ばかりなのかい?
多分、ここにいる人の大半は数人〜数十人規模の中規模開発者だと思うよ。
0504nobodyさん2010/10/11(月) 00:50:45ID:???
困ったなw
0505nobodyさん2010/10/11(月) 01:03:04ID:???
どこまで釣りかわからなくなってきたorz
0506nobodyさん2010/10/11(月) 02:41:41ID:???
うち5人で作ってるEC+アフィリのサイトだけどWebサーバ10台クラスですげー高負荷だよ
キャッシュサーバとか検討してるレベルだし
0507nobodyさん2010/10/11(月) 11:21:25ID:???
因みに、Yahooでも5〜10人程度の開発チームが1サービスを担当する。
それぞれのチームが働きやすいようにもろもろ準備してるだけ。
しかも高付加なのはトピックとかの上位10%ほどのサービスを除けば、
中の下のエンジニアでハードウエアで済ますっていう世界だよ。

ま、おれはその中の下より下なわけだがw
0508nobodyさん2010/10/11(月) 20:09:48ID:???
>>496>>499>>502>>503
いろんな意見ありがとうございます。

エクステンションの書き換えとか追加はまあ出来るんですけど、PHP全体の挙動を詳細に解析したことがあるわけじゃないので、思わぬ穴ができそうでやりたくないんですよね。

ハードの性能がある程度あれば、通常の開発規模では気にしなくていいことがわかりました。
実際にサービスをリリースして運用を開始してから、もし問題があればフレームワークの排除等も検討してみます。

ありがとうございました。
0509nobodyさん2010/10/13(水) 17:49:35ID:9/s0PB03
>>506
zend全く関係なくて申し訳ないんだけどアクセス数とCPUとメモリ教えてくれない?
0510nobodyさん2010/10/18(月) 11:50:14ID:???
>>509
アクセス数についてだけど、トピックに上がった記事で人気があると、
だいたい秒間200アクセスを超えてく。
CPU、メモリについては聞いてどうするな世界だな。
サーバーはごく普通のレベル。
自前のDCにDELLとかの平均的なサーバーを入れてるだけ。
0511nobodyさん2010/10/18(月) 12:02:03ID:???
サーバ1台当たり20アクセス/sでアップアップなのかよw
0512nobodyさん2010/10/18(月) 12:41:26ID:???
どんなサイトかしらんけど適切なハードで、ちゃんと設定したら半分も要らなそうだな(笑)
0513nobodyさん2010/10/18(月) 16:10:14ID:???
>>511

> サーバ1台当たり20アクセス/s

そんなこと、どこに書いてあるの?
0514nobodyさん2010/10/18(月) 16:11:50ID:???
あぁ、わかった。ポインタミスだw
0515nobodyさん2010/10/18(月) 18:11:43ID:???
>>510
なんでお前が俺の書き込みに答えてるんだよw
具体的な数字は言えないけどやってくるのが殆どアフィリタグ踏んでくるアクセスだから
DB書き込みやらんとならんし結構重いんだよね
むしろWebサーバってよりロードバランサやSSL処理の方が厳しい感じなのでサーバのCPUなんかは持てあましてる
10台用意してるのはどっちかというと障害対策や不意のピークのためだから
平時はピークでもせいぜい50%くらいしかリソース使わん
0516nobodyさん2010/10/18(月) 21:04:03ID:???
MVCのサンプルがふんだんに見れるサイトないのかなぁ。。
海外とかでもいいから知ってる人いたら教えて
0517nobodyさん2010/10/18(月) 21:59:15ID:???
      _______                     __
    // ̄~`i ゝ                    `l |
    / /        ,______   ,_____    ________  | |  ____ TM
   | |     ___ // ̄ヽヽ // ̄ヽヽ (( ̄))   | | // ̄_>>
   \ヽ、   |l | |    | | | |    | |  ``( (.  .| | | | ~~
      `、二===-'  ` ===' '  ` ===' '  // ̄ヽヽ |__ゝ ヽ二=''
                         ヽヽ___//   日本
  _____ _____  ______  _______
  |  ウェブ  | | イメージ | | グループ | | ディレクトリ |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       ._________________
      |MVC sample                │・検索オプション
      └────────────────┘・表示設定
         | Google検索 | I'm Feeling Lucky |  ・言語ツール
          ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       ◎ウェブ全体から検索 ○日本語のページを検索
0518nobodyさん2010/10/19(火) 02:49:28ID:???
MVCの切り分けってサンプル必要なくらい難しいか?
0519nobodyさん2010/10/19(火) 07:22:15ID:???
>>515
それって結局はZendFWがボトルネックにはなってるわけでは無い、って事だよな?w
05205162010/10/19(火) 09:19:22ID:???
いや実はMVCの切り分けを学びたいとかじゃなくて、
うまい人がどんな書き方(わかりやすさ・メンテナンスのしやすさなど)してるかを
いろいろと知って取り入れられるものはないかという探究心から聞いてみただけなのでないならないでいいんです。
0521nobodyさん2010/10/19(火) 09:50:18ID:???
皆、デフォルトコントローラー群にprefixってつけてる?

IndexController

と書くところを

ModuleName_IndexController
ProjectName_IndexController

のように冗長に。
PDTで複数プロジェクト編集する時にクラス名が被るとコード補完が厄介なんだ・・・
何か上手い方法ないかね
0522nobodyさん2010/10/19(火) 12:00:40ID:???
>>515
すまん、ポインタを見間違えた
0523nobodyさん2010/10/19(火) 15:08:51ID:???
>>521
Controllerをコード補完で呼び出すことなんてあるか?
0524nobodyさん2010/10/19(火) 17:58:33ID:???
>>523
コントローラ内でメソッド呼び出すとき、
$this->hogeXXXで保管しようとしたら、
他のプロジェクトの同名コントローラのメソッドがでてきちゃうんじゃね?
0525nobodyさん2010/10/19(火) 19:56:12ID:???
>>524
ControllerにAction以外のメソッド書くってこと?
private でも他のメソッド出てきちゃうんだっけ?
0526nobodyさん2010/10/19(火) 22:05:23ID:zJOQfrg+
>>463

Ver.1.10.8のZend_OpenId_Consumerの733行目に『/* TODO: OpenID 2.0 (7.3) XRI and Yadis discovery */』があるよ。
やっぱり、mixiのOpenIDだめだった。
0527nobodyさん2010/10/19(火) 22:19:07ID:???
2.0から対応するんだと思う
0528nobodyさん2010/10/19(火) 23:13:44ID:???
>>525
コントローラ固有だったり、サイト全体で使うようなショートカットメソッドを登録する事があるんよ。
$this->log(); とか $this->getXxx() みたいなのを・・・
privateにしててもクラス名が同じだと補完対象にされてしまう。

コントローラにアクション以外書くのってまずい?
0529nobodyさん2010/10/19(火) 23:28:47ID:???
別に君がそう書きたければそれでいいと思う
0530nobodyさん2010/10/20(水) 04:30:26ID:???
$this->log()はログの発行元が追跡しやすくて良い
0531nobodyさん2010/10/20(水) 12:10:17ID:???
アクションコントローラーにActionメソッド以外のメソッドって
結構いろんなサンプルとかでやられてるよな
0532nobodyさん2010/10/20(水) 13:31:25ID:???
privateメソッド限定なら補完の必要性もあんまりないから
放置したほうがいいと思う。

$thisで同名他クラスのメソッド出てきちゃうのは
そのうちPDTのほうで対応されそう。
heliosで親クラスの補完が変だったのもSR1で改善されたし。
05335092010/10/20(水) 17:08:16ID:goNec+dl
>>515
質問したの俺だよ、答えてくれてありがとう
サイトの運営ってプログラム書ければ良いワケじゃないんだね、
わかってたけどトラブル発生時の対応とか考えると大変だわ
みんなはプログラム書く以外にシステム設計とかもやってるの?

>アフィリタグ踏んでくるアクセスだからDB書き込みやらんとならん

これってアクセス解析のためだよね?
うーむ、勉強になったよ
0534nobodyさん2010/10/21(木) 01:30:25ID:???
>>531
>>532
Zend_Controller_Actionのコード見る限り、
普遍的なメソッドはController自体に登録してあるしね。

0535nobodyさん2010/10/21(木) 04:34:34ID:???
>>534
どんなメソッド?
0536nobodyさん2010/10/21(木) 05:14:21ID:???
>>535
_fowerdとか_redirectとか他にも色々、てかコード読めよw

Actinは xxxAction って命名規則があるんだし、
ActionCtonroller = Actionのみを記述するものでは無いってこった
0537nobodyさん2010/10/21(木) 05:18:53ID:???
>>536
それがなかったらコントローラじゃないだろ?何言ってんだ
0538nobodyさん2010/10/21(木) 07:16:01ID:???
>>537
別に?無くてもコントローラとしては機能するよ。

俺がいいたいのは、コントローラにはアクション以外定義するのはおかしいなんて事は無い。
それだけだ。
0539nobodyさん2010/10/21(木) 07:23:46ID:???
ああ、MVCのコントローラとZend_Controllerの実装の話が噛み合ってないわけね
0540nobodyさん2010/10/21(木) 07:32:49ID:???
ついでに言うとそれらはルーティングを行うための基底コントローラに実装されているメソッドであって
自分がそれを継承して作るコントローラに、アクション以外の(コントローラから逸脱する)ロジックなり処理なりを実装するのは
MVCの考えに反するよ。
てかZend_Controllerを見たらAction以外のメソッドがあるから定義しておかしくないなんてのは余りにも短絡すぎ
無かったらユーザがActionだけ書いて動くわけないでしょ
0541nobodyさん2010/10/21(木) 10:18:49ID:???
きっちりしたのはzendに任せるとして
ユーザは好きなように使えばいいのさ
0542nobodyさん2010/10/21(木) 11:09:59ID:???
>>539
MVCの思想としても_fowardをアクションコントローラに実装する必要は無い。
例えばZFで言えばヘルパでもいい。

>>540
最初から全てを書くとは誰もいってなくね?
Action間で共有するメソッドやログ出力ショートカット程度しか言われてない気が。

0543nobodyさん2010/10/21(木) 14:12:10ID:???
>>536

各ControllerでActin以外に独自メソッドいろいろ書いてたら、
将来的なZFのバージョンアップで拡張されたときに
不意なオーバーライドしちゃって動かなくなりそうで怖い。

間に1サブクラスかませてそこでやるならまだしも。
0544nobodyさん2010/10/21(木) 15:03:42ID:???
>>543
Zenc_Controller_Actionを継承した基底コントローラは最低限用意しておく
各コントローラは基底コントローラを継承しておく

全体で必要なら基底コントローラ、
コントローラ固有ならそのコントローラに書く

という感じかな。

オーバーライドしてしまって動作しなくなるケースって相当希だと思う。
0545nobodyさん2010/10/21(木) 19:36:11ID:???
PHPにもJavaみたいにアノテーションで@Overrideとか指定出来れば良いのにね。
0546nobodyさん2010/10/22(金) 01:09:01ID:???
そこまで厳密にやるならもうJavaか.NETやれよみたいな話になるんじゃないの?
0547nobodyさん2010/10/22(金) 01:53:39ID:???
>>545
アノテーション自体は定義出来るし
ランタイム時にReflectionクラスで取得する事も出来るので
必要だと思うなら自分で作ればいい


作ってるうちに >>546 と同じ答えにたどり着くと思うがw
0548nobodyさん2010/10/22(金) 13:26:45ID:???
いやいや、そこまでの話じゃないよ。

単に @deprecated とかPDTでも対応してて便利だし、
そのレベルであれば良いなあって。
0549nobodyさん2010/10/22(金) 15:12:14ID:qwjMjkx8
dbの登録データのデリートアクションみたいに、実際には画面を表示しない場合って
(削除処理がされたら完了画面にリダイレクトする)
viewの設定をどうしたら良いの?

phpエラー(warning)を吐かれてるのを止めたいんだけど…
ルーティングで対処するのか、それともdeleteAction()の中で何か書くのかわからないです

routingは以下のようになってます

routes.scheDelete.route= "/admin/schedule/delete/*"
routes.scheDelete.defaults.module= "admin"
routes.scheDelete.defaults.controller= "Schedule"
routes.scheDelete.defaults.action= "delete"
routes.scheDelete.type= "Zend_Controller_Router_Route"

回答お願いしますー
05505492010/10/22(金) 15:13:38ID:qwjMjkx8
あ、すみません。情報がたりませんでした
どうせ画面の表示はないのだから/schedule/delete.tplを用意していないのです。

0551nobodyさん2010/10/23(土) 00:01:07ID:???
>>549
マニュアルに書いてあるよ
■ このスレッドは過去ログ倉庫に格納されています