トップページphp
983コメント361KB

Zend Framework Part5

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2011/02/11(金) 04:04:29ID:???
公式
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/
0069nobodyさん2011/03/08(火) 19:58:32.36ID:???
>>68
仕事を通じて引っかかったところがあったので検証もしてみたけど、
「PHP パフォーマンスチューニング」でググれば他にも大量に出てくるからまずそこから調べた方がいい。

ちなみに俺もほとんど独学だし、先輩から教わった事なんて仕事として使うときの
エラー処理取り扱い方くらいしかない。
ただのTIPSやチューニング方法なんていちいち本に書く内容じゃないし。
こういう知識はググる、検証してみる、バグトラック見てみる、元のソース読んでみるしかない。
後者の方は時間のあるときにやってみると色々勉強になるよ。
0070nobodyさん2011/03/08(火) 20:00:28.15ID:???
PHP「だけ」できればいいやと思ってると身に付かない
0071nobodyさん2011/03/08(火) 21:00:46.19ID:???
>>69
なるほど、ありがとう。助かったよ
0072nobodyさん2011/03/08(火) 21:58:50.51ID:???
>>67
変数の破棄ってどうやるの?
unsetとか意味あるのかな?
0073nobodyさん2011/03/08(火) 22:04:10.22ID:???
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');ってやったら勝手に"-"に補正しやがって読めませんでした。
0074nobodyさん2011/03/08(火) 23:23:27.36ID:???
>>73
ああ、それね
専用のメソッドがあってそこで条件判断すればおk


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

について
俺はその情報は知らないからマニュアルのどのページに書いてあるのかurl張って教えて欲しい
教えてもらえるなら俺ももうちょっと詳しく教える
テイク&ギブでどうかな
0075nobodyさん2011/03/08(火) 23:48:23.81ID:???
views/scripts/ 位置が基底ディレクトリだから
$this->render('bar/fuga');でできたと思うが
0076nobodyさん2011/03/09(水) 07:44:06.41ID:???
>>74
おまえその書き込みはテイクしてないぞ
0077nobodyさん2011/03/09(水) 10:35:26.46ID:???
日本語読めない人は黙ってたほうがいい
0078732011/03/11(金) 01:04:00.80ID:???
>>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/'を消したら概ね想定通りになった。

ただこれ例外投げても継続するからパス変更後に例外出したらエラーが大変なことに。
例外発生後は継続させずにそのときだけ変更とかできないかなあ。
0079nobodyさん2011/03/11(金) 09:44:23.59ID:???
何でそんな難しくやろうとするんだろうか
もっと簡単にできんのに
とりあえず俺74だから
0080nobodyさん2011/03/11(金) 14:14:01.84ID:???
ZFで構築された大手企業ってあんまり聞かない
cakeかsynfonyどちらかでweb制作会社がZFでサイト制作で使ってる程度しか見たことない
あるなら紹介してください
0081nobodyさん2011/03/12(土) 07:00:13.43ID:???
ちょっとかじって驚いた。
Cakeは糞だと思う。
0082nobodyさん2011/03/12(土) 18:13:02.14ID:???
フレームワークって名乗ってるからそういう用途としては使いにくいと思うけど
Zendが作ってんのにね
0083732011/03/16(水) 22:10:10.44ID:???
Zend_Dbって
where A AND (B OR C)
が作れない?
0084 [―{}@{}@{}-] nobodyさん2011/03/17(木) 09:33:03.70ID:???
>>83
->where('`A` = ?', $a)
->where('(`B` = ?', $b)
->orWhere('`C` = ?)', $c)
0085nobodyさん2011/03/17(木) 17:24:02.26ID:???
おーぅアクロバティック
0086nobodyさん2011/03/17(木) 20:25:27.35ID:???
ZFでサイト構築するのってやめたほうがいい?
0087nobodyさん2011/03/17(木) 20:36:35.13ID:???
おすすめだお
0088nobodyさん2011/03/17(木) 21:43:33.52ID:???
>>84
そんな書き方がw
ありがとう
0089sage2011/03/20(日) 13:23:00.64ID:???
Zend Framework の Full Package を小分けにしてダウンロードできるようにしてみた。
http://ramat.ram.ne.jp/

それから、Pleiades に抵抗を感じる >>28 のために PDT 2.2.0 日本語化パックをおいとく。
被災者支援活動につかってちょ
0090nobodyさん2011/03/20(日) 15:13:01.29ID:???
http://framework.zend.com/manual/ja/zend.db.adapter.html
ここのdeleteのところに
> 三番目の引数に配列の配列を提示すると、 値は自動的に引用符で囲まれてキーに入れられます。
> そしてこれらは条件として結合され、 AND 演算子で区切られます。

って書いてあるんだけど、実際に第三引数を入れても完全に無視される
メソッドも引数を二つしか受け取ってない
誰か報告よろ
0091nobodyさん2011/03/20(日) 16:36:23.89ID:???
自分でしろ
0092nobodyさん2011/03/20(日) 21:06:33.07ID:???
ZFコマンドでcreate actionした後、そのactionを削除する場合は
どうしたらよいのでしょうか?

単にcontrollersのactionメソッド部分と、actionビューファイルを削除する
だけでよいのでしょうか。
それともzfproject.xmlを再構築するような処理が必要になるのでしょうか?
0093nobodyさん2011/03/22(火) 13:08:01.70ID:???
>>92

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


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

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

てな感じでしょう。

93様、ありがとうございました。
0095nobodyさん2011/03/22(火) 22:43:11.53ID:???
わからないとか言ってちゃんと英語読めてるじゃないかw
0096nobodyさん2011/03/23(水) 04:10:06.43ID:???
きっとこの人はZF使っててもPHPは分からないという謙虚な方なのでしょう
0097nobodyさん2011/03/26(土) 15:01:52.93ID:???
ZFを使うのに適したIDEは何がお勧めでしょうか?

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

でも、ZFならZend本家のPDTが良さそうな気がしますし・・・
どちらがよいのでしょうか?
0098nobodyさん2011/03/26(土) 15:09:29.94ID:???
>でも、ZFならZend本家のPDTが良さそうな気がしますし・・・
じゃそれ使えば良いだろw
0099sage2011/03/26(土) 17:12:24.83ID:???
>ZFを使うのに適したIDEは何がお勧めでしょうか?
つ Zend Studio
0100nobodyさん2011/03/26(土) 18:05:40.29ID:???
こんにちは、ルーティングについて教えていただけますでしょうか?

$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/アクションへのアクセスか否かを判断できればいいと考えているのですが、どのように書けばいいのかわかりません。
お手数ですがご存知の方、ご指示をお願いします。
よろしくお願いします。
0101nobodyさん2011/03/27(日) 00:03:25.15ID:???
zf.batって使い道あるの?
0102nobodyさん2011/03/27(日) 11:48:52.26ID:???
まだ、使ったことがないけど、使い道はあるんじゃね?
0103nobodyさん2011/03/27(日) 12:44:03.04ID:???
使ったことないのにレスしたの笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑
0104nobodyさん2011/04/02(土) 22:45:15.46ID:???
Zend_Validateのメッセージを日本語化したくて下記の方法を
試しているのですが上手く変換されず困っています。
同じようにリソースファイルを使用してきちんと変換されている方はいますか?
ファイルへのパスはきちんと通っています。

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

Znedのバージョンは1.11です。
よろしくお願いします。
0105nobodyさん2011/04/03(日) 10:44:23.66ID:???
>>104
1.14にバージョンアップしてから来てくれないかな
0106nobodyさん2011/04/03(日) 11:28:05.02ID:???
>>105 了解!
0107nobodyさん2011/04/05(火) 03:01:38.74ID:???
>>104ですがphp.iniのインクルードパスに
'.;php\peer\;php\zend1.14\'のようにpeerを先に記載していたのですが、
こちらにzendが含まれ、先に読み込まれていた事が原因で新しいバージョンに
する事ができていませんでした。

ありがとう>>104 (´З`)チェッチュ
0108sage2011/04/05(火) 11:31:30.25ID:5FZ9UmE+
Zend Framework のパフォーマンスガイドにあるけど、一番最初のピリオドも最後に持っていって、

'php\zend1.14\;php\pear\;.'
のようにするといいと思うよ ;-)
0109nobodyさん2011/04/05(火) 12:00:45.95ID:???
>>108
urlキボンヌ
0110sage2011/04/05(火) 16:51:04.75ID:5FZ9UmE+
>>108
http://framework.zend.com/manual/ja/performance.classloading.html

「現行ディレクトリは最後に定義するか、または定義しない」
0111nobodyさん2011/04/05(火) 17:51:01.85ID:???
>>110
温かい思いやりに感謝する
0112nobodyさん2011/04/06(水) 20:30:29.32ID: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/の中で動いているのでありえないことで理由が理解できません。

すみません、ご意見お願いします
0113nobodyさん2011/04/08(金) 05:28:10.73ID:MbleiVWq
ErrorControllerをモジュールごとに使い分ける方法ってありますか?
ググると一つ出てくるんですが、あくまでそのブログを書いた人の考えたやり方で
標準というか、安心して使える実現法を知りたいです
0114nobodyさん2011/04/08(金) 10:02:59.47ID:???
ZFに標準なんて方法はないんだが
0115nobodyさん2011/04/08(金) 15:00:06.96ID:???
>>114
書き方が悪かったです、すみません。標準と言うより定番です。
モジュールごとにエラーコントローラをわけるなんてあると便利に決まってる機能なのに
マニュアル見ても見つからなかったので、自分が知らないだけでZendFW利用者の間で
定番的によく使われてる方法があるなら知りたいなと
英語のFAQサイトでも見つけたけど、なんで機能に組み込んでないんだろう
0116nobodyさん2011/04/08(金) 15:16:04.91ID:???
標準も定番もないし
やるなら1例としてモジュール名を元にsetErrorHandlerControllerでそれぞれのエラーコントローラを指定するとか
01171132011/04/12(火) 08:32:07.94ID:???
>>116
すみません、お礼忘れてました
どうにかこうにか形になりました、ありがとう
0118nobodyさん2011/04/14(木) 18:49:46.04ID:???
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'
 )
);

とかいたのですがマッチしません。
なぜでしょうか?
0119nobodyさん2011/04/14(木) 19:24:11.69ID:???
getInstance()にオブジェクトとして123の部分が入ってるからそこから取れば?
0120nobodyさん2011/04/14(木) 23:05:38.43ID:???
>>119
すみません。
マッチしないという言い方が正しくありませんでした。

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

0121nobodyさん2011/04/14(木) 23:08:54.32ID:???
関係ない箇所だけど'info.htmlはinfo\.htmlって書くべき
0122nobodyさん2011/04/14(木) 23:49:11.11ID:???
>>121
うが!!
・・・・ですよね・・・。
0123nobodyさん2011/04/15(金) 09:17:52.27ID:???
>>121
と思ったら、それが原因ではありませんでした。
0124nobodyさん2011/04/15(金) 10:29:45.09ID:???
関係ない箇所だけど
関係ない箇所だけど
関係ない箇所だけど
0125nobodyさん2011/04/17(日) 20:03:37.97ID:???
PDTなどのIDE環境なしで、テキストエディタでZendFrameworkを学習
するのは、よくないのでしょうか?
(ZFより先にIDEを導入するべき?)
0126nobodyさん2011/04/17(日) 20:48:41.28ID:???
好きにすればいいんじゃない
でも入力補完とかリアルタイムの構文チェックに慣れると
普通のエディタには戻れなくなる
0127nobodyさん2011/04/18(月) 18:04:20.46ID:???
誇らしいニダ
0128nobodyさん2011/04/22(金) 21:27:19.03ID: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();
0129nobodyさん2011/04/22(金) 21:30:49.02ID: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>
とあります
0130nobodyさん2011/04/22(金) 21:32:42.49ID:???
質問:〜があります
回答:ありますね
0131nobodyさん2011/04/22(金) 23:25:41.71ID:V7g6SPUo
>>128-129続き
$return = 〜 ('auth_deny_g')); の1文は一体何を意味しているのでしょうか?
messageに変数を割り当てているのでしょうが、translator('auth_deny_g')の値が何を意味するのか分かりません
どこかにauth_deny_gに該当する値、又ファイルが存在するのでしょうか?

2chの本文の長さ規制で変な連投になりすみません
0132nobodyさん2011/04/23(土) 10:50:07.38ID:???
$this->view->translator から、
'auth_deny_g'ってキー使って値を引っ張ってんでしょ。
translatorはZend_Translatorだよな。
んで、これはZend_Formの認証失敗を通知するメッセージの出力じゃねーの?
周辺が解らなすぎて答えようがねえよ。
0133nobodyさん2011/04/23(土) 11:59:03.01ID:???
500ページ程度のサイトはZFとCakePHPどちらで構築するのが適していると思いますか?
0134nobodyさん2011/04/23(土) 12:24:47.86ID:???
ワードプレス
0135nobodyさん2011/04/23(土) 14:34:34.73ID:???
>>133
その500ページの内容による。
それすら無しに、ZFとCakeって比較は馬鹿げてる。
内容がわかってもその比較は馬鹿げてて、
WordPressの方がいいってのもあり得る。
0136nobodyさん2011/04/23(土) 15:44:45.60ID:???
こういう意味不明な回答はFWとCMSをよく使いこなしてきてない人なんだろうな
0137nobodyさん2011/04/23(土) 16:44:02.43ID:???
いや、質問が意味不明だし。。
ギャグで返す以外にどうしろとw
0138nobodyさん2011/04/24(日) 00:32:37.59ID:???
tomatoCMSとか見てみたけど、わけが分からなかった
皆この位のコードとか書いてアプリケーションとか作ってるの?
それともやっぱこのレベルは難しい?
0139nobodyさん2011/04/25(月) 14:15:53.46ID:???
>>136
あんたの方がよっぽど、ソフトを使ってみただけの実務の出来ない技能屋って感じがするけどなあ。
フレームワークとCMSを敢えて提示し得る問いだってのは明らかじゃん。
0140nobodyさん2011/04/25(月) 14:57:36.93ID:???
悔しかったのか
0141nobodyさん2011/04/25(月) 22:52:28.48ID:???
>>138
心配しなくても、tomatoCMSレベルを作れる日本人は殆ど居ません
0142nobodyさん2011/04/26(火) 00:14:56.20ID:???
普通に皆作れる
ただし、作れる人は他の事やってる
0143nobodyさん2011/05/01(日) 18:55:39.12ID:???
Zend_Form_Element_InputとかZend_Form_Element_Hiddenとかがxhtmlじゃなくてhtmlの省略形の閉じタグがつかないんだけど、
これってどうやったらxhtmlになるの?

0144nobodyさん2011/05/03(火) 13:13:25.50ID:???
>>143
$view->doctype(ほにゃらら);
0145nobodyさん2011/05/05(木) 23:10:30.86ID:???
>>144
トンスル
ちがった
サンクス
0146nobodyさん2011/05/09(月) 18:07:17.19ID: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って何の為にあるパラメータなんでしょうか?

マニュアル読んだものの英語なのでよくわからなくて、色んなブログ記事を読んでも
このユーザーがなになのか、ハッキリ書いていません。
すみません、アドバイスお願いします
0147nobodyさん2011/05/09(月) 20:12:17.36ID:???
お前は何を言ってるんだ
0148nobodyさん2011/05/09(月) 21:28:56.06ID:???
>>146
本当にそこまで試して全部結果が同じなら、
なんかの互換確保用か、名残じゃねえの?
場所ははっきりしてんだし、ソース追っかければいいじゃない。
01491462011/05/09(月) 23:03:42.09ID:???
>>148
どうもです。言われた通りソースを見てみました。
すると、HttpClientの生成やその先の処理にusernameは全く使ってませんでした。
setUsername();とgetUsername();の2つのメソッドがあるだけで、
このHttpClientのユーザの名前を入れる/引き出す処理に使うだけみたいでした。
なので、usernameに指定するのは(2)のアプリケーションユーザ名のようです。
パラメータの配列からusernameキーそのものを消しても動いたくらいで…

とりあえず解決とします。ありがとうございました。
0150nobodyさん2011/05/10(火) 00:43:33.42ID:???
>>149
Basic認証時代の名残かもね。
当時コンストラクタに$username, $passwordが引数で渡されてたから
0151nobodyさん2011/05/10(火) 11:31:18.60ID:???
>>149
OSSだとよくあるよね。このフラグ使ってねーのかよ!って。
ドキュメントに記載は無いけど、ソースのコメントにはあったりするし。
ZFぐらい大きくても、個々のライブラリのコミッタって少ないだろうし、
まあソース見たほうが早いってこった。
0152nobodyさん2011/05/10(火) 17:08:28.72ID:???
上でtomatoCMSの話題がありましたので質問させてもらいますが、
tomatoCMSはrequire_once等を使用せずに別ファイルのクラス等を呼び出していますが、これは何故なのでしょうか?
どういう仕組みでこのように出来るのでしょうか?
0153nobodyさん2011/05/10(火) 19:08:58.78ID:???
tomatoは知らんが、まさかAutoloader使ってるだけじゃないよな?
0154nobodyさん2011/05/11(水) 13:27:38.91ID:???
ossは開発者の興味が薄いと不具合あっても放置されまくりだからな。正直品質は低い。
0155nobodyさん2011/05/11(水) 21:41:01.28ID:28BHzc0+
>>154
君は PHP 使っているの?だったらすぐやめて .net や delphi に乗り換えたほうがいいよ :-p
0156nobodyさん2011/05/11(水) 23:26:29.06ID:???
Delphiはやめとけ
あれは情報が少ない
やるだけ損だ
0157nobodyさん2011/05/11(水) 23:51:13.35ID:???
>>156
おーい
0158nobodyさん2011/05/14(土) 03:05:05.54ID:???
>>154
商用製品でも同じこと
売上が薄いもんは品質低い
0159sage2011/05/14(土) 06:53:07.55ID:???
>>154 はいまだに1.5以前のドキュメントを参照して
「高品質」というセールストークに反応したのだろうか。:-p
http://framework.zend.com/manual/1.5/ja/introduction.overview.html

最新はコッチ
http://framework.zend.com/manual/ja/introduction.overview.html
0160nobodyさん2011/05/14(土) 09:46:32.32ID:???
なあ、>>154 は皮肉じゃないか。
0161nobodyさん2011/05/14(土) 12:15:58.59ID:???
zf2いいね
0162 忍法帖【Lv=10,xxxPT】 2011/05/15(日) 15:21:09.77ID:???
2.0いつくんの?
0163nobodyさん2011/05/15(日) 15:26:59.62ID:???
来年までこないよ
0164nobodyさん2011/05/26(木) 00:37:23.77ID: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を切り替えることを考えもしたんですがそれもおかしいし…
(閲覧モード時に使わない機能とアクションが大量にあるというあたりが)

どうするのが良いでしょうか。変な質問ですみません
0165nobodyさん2011/05/26(木) 00:55:48.05ID:???
>>164
なんでサブドメイン?
01661642011/05/26(木) 01:36:57.62ID:???
>>165
単純に見映えがいい?カッコイイ?からというしょうもない理由なんですが
こういうルーティングの機能があるから使ってみるか、程度の…
サブドメインを利用してること自体が問題になるんでしょうか? そんなことないですよね?
0167nobodyさん2011/05/26(木) 04:04:39.00ID:???
>>164
Cookie(というかセッションのキー)どうすんの?ドメインにワイルドカードで許可できたっけ。
0168nobodyさん2011/05/26(木) 05:24:34.82ID:???
>>164
>>166
ルーターを作って username.xxxxx の場合は、
mypageモジュール内のコントローラを呼ぶ。
mypageモジュール内でセッション情報の確認を行い、
不正な場合はdefaultにリダイレクトにすればいい。
■ このスレッドは過去ログ倉庫に格納されています