ZendFramework Part2
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/03/05(水) 23:21:24ID:???http://framework.zend.com/
マニュアル
http://framework.zend.com/manual/ja/
m-takagi ver(↑よりたぶん新しい)
http://www.m-takagi.org/docs/php/zend/
API
http://framework.zend.com/apidoc/core/
0609nobodyさん
2008/12/13(土) 18:02:07ID:???さんくす。
XML_Serializer/Unserializerの手軽さはないが、これ使ってグリグリするかな。
どもでした。
0610nobodyさん
2008/12/14(日) 17:48:13ID:???まさか確認画面なんていらないよ!てことじゃないですよね。
0611nobodyさん
2008/12/15(月) 14:05:56ID:???preDispatch内で認証をしており、
未認証のユーザはエラー画面を表示したいのですが…
0613nobodyさん
2008/12/15(月) 14:23:56ID:???使ってるんだけど_forwardのほうがいいの?
0614nobodyさん
2008/12/15(月) 14:26:57ID:???0615612
2008/12/15(月) 14:38:58ID:???で、>>611なんだけど、エラー画面に飛ばしっぱなしなら_redirect()の方がいいかもね。
俺は認証後に本来表示すべき画面に戻したいから_forward()使ってるけど。
0616nobodyさん
2008/12/15(月) 14:54:53ID:???でも、_forwardだと共通の画面しか出せませんよね?
状態によって、エラーメッセージを振り分ける必要がある場合はどうするのがベストでしょう?
理想としては
public function preDispatch()
{
if (!$auth) {
// ここで認証状態を判別して、個別のエラーメッセージを表示
// dispatchループを抜けて、継続するActionは破棄する
}
}
みたいな処理にしちゃいたいのですが…。
0617612
2008/12/15(月) 15:21:23ID:???> でも、_forwardだと共通の画面しか出せませんよね?
> 状態によって、エラーメッセージを振り分ける必要がある場合はどうするのがベストでしょう?
個別メッセージがどのような条件で切り替えられるのかにもよるが、
preDispatchで処理するぐらいだからそれほど細かいものでも無かろう?
で、_forward()してもUriは変わらない、$this->_getParam()でcontrollerやactionを取ると元のままなので、
それらで判別してエラーアクション内でメッセージを切り替えるってのはどうよ。
#ただ、コントローラの独立性が少し失われてしまうが...
他には、Zend_Registryに格納するしかないかなぁ。
0618nobodyさん
2008/12/15(月) 15:27:35ID:???レスポンスオブジェクトに設定して_forward
0620nobodyさん
2008/12/15(月) 15:58:13ID:???やはりAction間で値を受け渡す変数は必要になるんですね。
色々試してみます。
0621nobodyさん
2008/12/15(月) 23:23:41ID:???ZFがフレームワークとしてユルイってのを実感してるよ。
Action中に十何個ものswitch caseがあってメンテする気起きねえ。
0622nobodyさん
2008/12/15(月) 23:49:09ID:???0623nobodyさん
2008/12/16(火) 02:34:01ID:???0624621
2008/12/16(火) 02:49:58ID:???switch case文の嵐以外の方法を知りたいだけ。
0625nobodyさん
2008/12/16(火) 03:05:05ID:???0626nobodyさん
2008/12/16(火) 03:24:54ID:???という事に気づけない621が腐ってる。
って事でおk?
0627621
2008/12/16(火) 03:53:21ID:???単にZF使っただけってシステムで・・・。
設計なんて誰もやってないさね。力技で作って・・・。
0628nobodyさん
2008/12/16(火) 11:53:37ID:???0629nobodyさん
2008/12/16(火) 13:05:30ID:???0630nobodyさん
2008/12/16(火) 13:20:56ID:???どんどん条件が複雑になっていってactionが腐れた
というよくある失敗例に見える
0631nobodyさん
2008/12/16(火) 13:37:31ID:Rl9W2bGtどこに問題があるんでしょうか? よろしくお願いします
//IndexController アクション
require_once 'Zend/Controller/Action.php';
class IndexController extends Zend_Controller_Action{
public function indexAction(){
echo date('U');
} //不要な場合は、メソッドの中は空でも構いません
public function helloAction(){ //helloアクションメソッド
Zend_Registry::set('testParam' ,'12345test');
$this->view->testP = "設定したテストパラメータは".Zend_Registry::get('testParam')."です";
}
}
//テンプレ
<html>
<head>
<title>Hello World!</title>
</head>
<body>
<?php print($this->escape($this->testP)); ?>
</body>
</html>
0632nobodyさん
2008/12/16(火) 14:46:08ID:???$front->throwExceptions(true);
等でエラーの情報を提示してみたらどうでしょう。
0633nobodyさん
2008/12/16(火) 20:56:47ID:Rl9W2bGtどうもありがとう
viewRendererは無効にしてないんです
根本的に書式とか構造とかに問題があるのかなと思ったんですが
指摘がないってことはそうでもないんですよね? なんでかなぁ…
0634nobodyさん
2008/12/16(火) 21:59:57ID:???ローダー使ってないと想像するけれど、
require_once 'Zend/Registory.php';はどこかでしてるの?
0635nobodyさん
2008/12/16(火) 22:23:00ID:Rl9W2bGtお恥ずかしい!忘れてました、コンポーネント呼び出すの!
このZend_Registryコンポーネントって、変数や配列の宣言に使うんですよね?
スクラッチで書くときみたいに $hoge = "変数です"; みたいな定義はZendFWじゃやっちゃいけないのかな
引数が2つしかないけど、変数の型(数値・文字列)は気にしないってことでしょうか
0636nobodyさん
2008/12/16(火) 22:23:38ID:???0637nobodyさん
2008/12/16(火) 22:45:02ID:???各アクションでプロパティ名が被りそうで怖くて
フレームワークの意味が無さ過ぎるNE。
0639nobodyさん
2008/12/16(火) 23:37:13ID:???0640nobodyさん
2008/12/16(火) 23:41:05ID:???http://framework.zend.com/manual/ja/requirements.html
ってなってるけど、いつから? 俺が使い出したときは5.1.xだったと思うんだけどな。
CentOS5.2は5.1.6で、個人のリポジトリで5.2.6を公開しているところがあることは知ってるんだが、
何となく躊躇してる。
とりあえずPHP5.1.6とZF1.7.1でも、今使っている範囲では問題なく動いているっぽいが、
どういったところでPHP5.1系で問題があるのか知っている人いる?
0641nobodyさん
2008/12/16(火) 23:44:16ID:???ZFはコントローラクラスのアクションメソッド内に記述するのがメインだから
ベタ書きと違って、変数作っても全部がローカル変数になるよね。
だから、別のアクションメソッドで
同じ名前の変数作ってしまっても被らない。
逆に言えば、他のクラスからは、意図的に変数を渡さなきゃ、
値が受け取れないって事でもある。
ビューで変数の値を出力するために
$this->view->hoge = 'hoge';ってしなきゃいけない様に。
主にビュー以外の用途で、変数を運ぶトラックがZend_Registory。
フロントコントローラなんかで、サイトのタイトルとかDBの情報みたいな
各コントローラで共通する情報を登録しておいたりするのが普通かな。
ベタ書きからのフレームワーク移行は最初は大変だと思うけど頑張ってなー
0643nobodyさん
2008/12/17(水) 00:23:34ID:???ZFは知らないけど、PHP自体のPDOのバグとかいくつか修正されてるし
Zend_Dbの中身はPDOだから、ZF動いてても気持ち悪ければUPじゃね。
設定地獄で逆に動かなくなるかもしれないけど…。
0644nobodyさん
2008/12/17(水) 03:31:33ID:???PDOのバグとかクリティカルな問題はディストリがメンテしてないかなぁ。
本当は ttp://www.jasonlitka.com/ から5.2.6を入れてみたんだが、
マッチパターンに日本語が混じる正規表現がうまく動かないというのが手元の環境で出て、
mb_ereg、ereg、preg全てダメだった。5.1.6やソースからビルドした5.2.5はちゃんと動いた。
環境の設定がらみかなと思ったんだが解決せずじまい。
jason のビルドに問題有りと決めつけているわけじゃないのだが、
さらに検証するのも面倒なんで、本鯖では避けてる状態。
ソースからビルドしてもいいけど、後々メンテ面倒だし。
つっても、jasonビルドも5.2.6で止まってるがなぁーw。
0645nobodyさん
2008/12/17(水) 16:28:02ID:Fnh4GsCx基本的にデザインの構成はテンプレートファイル(.phtml)でやるわけですが、
パラメータを受けて同じページでも画面の一部が切り替わることってあるじゃないですか
たとえば、ポータルサイトでよくある
・ログイン済みならメールの受信状況
・ログインしてなければアカウント作成への誘導
みたいに。
ああいうのって、表示切替の規模や内容が単純ならテンプレ中で.phtmlの中でif文で
振り分ければいい気がするけど、実際にはパターンごとに別々のクエリを動かす可能性も
あると思います(上の例だとメールの新着確認するとか)
その場合、タイプごとにモデルを作ってその中でクエリからhtmlの部分的な書き出しをして
テンプレの中に出力するようにするんですか?
みなさんどんな風に処理してますか? ご意見お願いします。
0646nobodyさん
2008/12/17(水) 17:00:12ID:???コントローラーで必要な条件を割り出して、必要なモデルで処理をして
結果をスタックする。
ビューはスタックを出力しまくるだけ。
0647nobodyさん
2008/12/17(水) 21:54:11ID:???0648nobodyさん
2008/12/17(水) 22:05:17ID:???0649nobodyさん
2008/12/17(水) 23:29:31ID:???Windows環境で、コントローラ名がFooBarController.phpで、Viewのパスを/view/scripts/FooBer/で指定してたんだが、
Linuxへ移植したら「コントローラ名が見つかりません」って言われた。
試しにFoobarController.phpで、Viewのパスを/view/scripts/Foober/で指定したら通った・・・orz マジかよ・・・
0650649
2008/12/17(水) 23:31:06ID:???○試しにFoobarController.phpで、Viewのパスを/view/scripts/foober/で指定したら(ry
viewのディレクトリ名違ってた。
0651nobodyさん
2008/12/17(水) 23:47:20ID:???ViewRenderを使用しているという前提なら、
FooBarController の場合 view は /view/script/foo-bar/ を探し、
FoobarController の場合 /view/script/foobar/を探します。
http://framework.zend.com/manual/ja/zend.controller.actionhelpers.html#zend.controller.actionhelpers.viewrenderer
詳しくは、↑のマニュアルの「デフォルトの検索方式」をどうぞ。
0653nobodyさん
2008/12/18(木) 00:09:16ID:???ありがとうございます
しかしよく理解できません、スタックって? IT用語辞典で調べたら一番最後に格納したデータが最初に出てくる
いろんな要素を格納する箱、のようなことが書いてありました
具体的にはどういうことなんでしょうか?
>俺も必要なデータを全てassignして、テンプレートは表示の振り分け以外使わない
つまり、assign前のモデルやメソッドで情報の最適化はするんですよね?
本来テンプレートに任せるべきhtml出力も場合によってはそれ以前(モデルなど)の中で
してしまうということですか?
ともかくありがとうございました
0654nobodyさん
2008/12/18(木) 02:40:01ID:???>本来テンプレートに任せるべきhtml出力も場合によってはそれ以前(モデルなど)の中で
>してしまうということですか?
しないよ。
HTML形成に必要な情報だけをassignする。
HTMLの生成はあくまでテンプレート側、
だからテーブル組とか複雑なページ構成だとテンプレートコードが超カオスになる…
どうするのがベストなんだろうねー。
0655nobodyさん
2008/12/18(木) 03:08:45ID:???まずコントローラはログイン情報を元にloginStatusModelを生成。
このときログインしてなかったらloginStatusModelはnullでもいい。
あとはそのままloginStatusModelをビューに渡す。
全体的なビュースクリプト(ex. index.phtml)からログインバー部分のテンプレート(loginStatusBar.phtml)を
読み込んでその中で、loginStatusModelを元にログイン時のテンプレート(loginedStatusBar.pthml)か
未ログイン時のテンプレート(notloginBar.phtml)かを切り替えて表示。
もうちょっとコンポーネント指向的にやるなら、コントローラからビューにログイン情報オブジェクトを渡して
ビュー側でloginStatusModelを呼び出して表示してもいいと思うのだけどね。
0656nobodyさん
2008/12/18(木) 07:02:29ID:???スタックだけれど、たとえば、Zend_Viewヘルパーのplaceholderはスタックの一種。
プレースフォルダーに"スタック"していけば、
ビュー側ではプレースフォルダをechoするだけになります。
この場合、おっしゃられるように
> 本来テンプレートに任せるべきhtml出力も場合によってはそれ以前にしてしまうということですか?
完全に1枚のビューに任せるのではなく、部分的なrenderを行ってそれをスタック、
最後はそれを結合するというようなコントローラーになります。
しかし、段階的なビューの育成が気に入らない場合は、コンテンツとビュースクリプト名をセットにして
スタックを順にレンダリングしていくようなヘルパーを作成するとよいかと。
言われてみて思ったけど、おれも作るわw
0657nobodyさん
2008/12/18(木) 07:10:22ID:???placeholderはスタックじゃないね。ごめん
後入れ、先出し
0658nobodyさん
2008/12/18(木) 09:36:52ID:???>だからテーブル組とか複雑なページ構成だとテンプレートコードが超カオスになる…
ですよねぇ、、 これ嫌ですよねー。どうすんべ、、
0659nobodyさん
2008/12/19(金) 01:48:58ID:Yo9sHh7s0660nobodyさん
2008/12/19(金) 01:56:10ID:???0661nobodyさん
2008/12/19(金) 04:14:38ID:???0662nobodyさん
2008/12/19(金) 10:43:58ID:???0663nobodyさん
2008/12/19(金) 13:41:41ID:N7fEKEUT流れるようなインターフェイスってや津を自分のスクリプトで実装したいです。
ZFのどのファイル見たらずばっと解決するでしょうか?
0665nobodyさん
2008/12/19(金) 14:56:50ID:???ZFのマニュアルにあるように、流れるようなインターフェイスってのをやりたいと思っています。
以下のような記述です。
$hoge->setA('A')->setB('B')->setC('C')
0666nobodyさん
2008/12/19(金) 15:07:35ID:???0667nobodyさん
2008/12/19(金) 15:52:12ID:???0668nobodyさん
2008/12/19(金) 23:40:24ID:???Zend_Cache_Frontend_Outputか Zend_Cache_Frontend_Pageのマニュアルが参考になるかも
>>665
return $this がキモ。
0669nobodyさん
2008/12/20(土) 01:34:15ID:???0670649
2008/12/21(日) 11:18:40ID:???やっぱりコントローラ名は駄目みたい。
/application/apps/controllers/FooBarController.php
<?php
require_once 'Zend/Controller/Action.php';
class FooBarController extends Zend_Controller_Action
{
public function indexAction ()
{
}
}
?>
Linux環境に限ってInvalid controller specified (FooBar)が出るわ、
windows<->Linuxの互換のためには、キャメルケースでコントローラ名
付けたら駄目なのか・・・orz これはFW仕様でしょうか?
0671nobodyさん
2008/12/21(日) 11:25:51ID:???それぞれの仕様をマニュアルで確認すれば問題のある動作はしないと思いますよ。
OSによってファイル検索時のケース依存が変わるので出来たり出来なかったりするのは
基本的に正しくないパスを与えている場合なので、今一度マニュアルを確認してみてはいかがでしょう
0672649
2008/12/21(日) 11:54:28ID:???ありました・・・
http://framework.zend.com/manual/ja/zend.controller.basics.html
コントローラクラスやアクションメソッドの名前に MixedCase あるいは
camelCase の単語を複数使用したい場合は、 URL 上での単語の区切り文字
として '-' あるいは '.' のいずれかを使用しなければなりません
(とは言え、ここで使用する文字は変更することができます)。
たとえば、アクションを FooBarController::bazBatAction() で定義したと
すると、対応する URL は /foo-bar/baz-bat あるいは /foo.bar/baz.bat
となります。
ご助力頂き、ありがとうございました。
0673nobodyさん
2008/12/31(水) 23:10:04ID:???911では小型の水爆が使用されている。
http://ri■ch■ardkosh■im■izu.at.webry.info/
創価の保険金殺人事件。
オウム事件は、統一・創価.北朝鮮の共同犯行である。CIAが監修している。
http://www15.ocn.ne.jp/~oy■ako■don/kok_web■site/ir■iguc■hi.htm
与党も野党もメディアも全部朝鮮人だった。
http://jb■bs.li■vedo■or.jp/b■bs/read.cgi/news/20■92/115794■1306/
2ちゃんねるは統一■教会が個人情報を集めるための道具。運営には統一■教会がいる。
駅前で「手相を見せてください」と勧誘してるのが統一教■会。(カルト宗教)
カルト宗教の下にいる人と上にいる奴を分けて考えないといけない。下にいる利用される人は上がどんなことをしてるか知らない。
ユダヤ権力の子分→2ちゃん運営=統一協会上層部=層化上層部=自民党清和会=野党の朝鮮人ハーフの政治家=
与党の朝鮮人ハーフの政治家=金 正日(キム・ジョンイル )=読売サンケイ=小沢十朗
ユダヤ人=ロックフェラー=ブッシュ=クリントン=ヒラリー=アドルフ・ヒトラー=オサマ・ビンラディン
毎日新聞スレを荒らしてる奴らも統■一教会の可能性が高い。
荒らしは洗脳するために「ネトウヨ」などのレッテル付けレスを何千回もする。
現実には「ネトウヨ」などは存在しない。
http://changi.2ch.net/test/read.cgi/ms/1230363385/
0674nobodyさん
2009/01/08(木) 22:12:51ID:F2D+k5Kuこういうのせっせとあちこちに貼ってる人間の心理ってどうなってるんだろう
0675nobodyさん
2009/01/12(月) 01:17:09ID:???使ってみようと思ったら、日本語リファレンスは充実してるけど、
肝心のWebアプリを作るのにどこからはじめていいかわからないしさ
疎結合にもほどがある
そこがいいとも思うんだけどね・・・
0676nobodyさん
2009/01/12(月) 05:05:08ID:???0677nobodyさん
2009/01/12(月) 08:29:57ID:???0678nobodyさん
2009/01/12(月) 13:35:56ID:???0679nobodyさん
2009/01/12(月) 16:44:32ID:???今のリファレンスだけでは、何が出来るかすら理解し辛い。
0680nobodyさん
2009/01/12(月) 16:55:08ID:???0681nobodyさん
2009/01/12(月) 18:31:43ID:???0682nobodyさん
2009/01/12(月) 18:36:42ID:???0683nobodyさん
2009/01/12(月) 19:00:35ID:???index.phpでrequire_onceするのはどう考えても正しくない使い方だろ。
ZendFrameworkはどう使うことが正しいかということが知りたいんだよ。
0684nobodyさん
2009/01/12(月) 19:04:23ID:???index.phpはブートストラップの起点だろ
0686nobodyさん
2009/01/12(月) 19:45:21ID:???0687nobodyさん
2009/01/12(月) 19:59:40ID:???メリットも不透明じゃ誰も習得しようとはしないだろうし、廃れる一方な気がす。
0688nobodyさん
2009/01/12(月) 20:06:02ID:???(´・ω・`)つ http://framework.zend.com/manual/ja/
0689nobodyさん
2009/01/12(月) 20:13:20ID:???一通り読んでるけど、アプリを作り込む上では情報足りなさすぎるよね。
結局ソースを漁る事になる。
phpDocとか無いの?
0690nobodyさん
2009/01/12(月) 20:22:44ID:???どんなFWだってソースみないで開発する気にはならんし。
phpDocなら自分好みのフォーマットで自分で作った方が手っ取り早いし
IDEがあればphpDocはいらんし。
まぁ、個人差?
0691nobodyさん
2009/01/12(月) 20:24:50ID:???先にFW作れよ
0692nobodyさん
2009/01/12(月) 20:27:33ID:???0693nobodyさん
2009/01/12(月) 20:29:15ID:???つ http://framework.zend.com/apidoc/core/
0694nobodyさん
2009/01/12(月) 20:33:11ID:???0696nobodyさん
2009/01/12(月) 20:35:38ID:???ユーザは多いに越したことは無い
0697nobodyさん
2009/01/12(月) 20:36:10ID:???0698nobodyさん
2009/01/12(月) 20:36:30ID:???0699nobodyさん
2009/01/12(月) 20:42:53ID:???0701nobodyさん
2009/01/12(月) 20:46:39ID:???0702nobodyさん
2009/01/12(月) 20:49:28ID:???スレ的に、初心者の質問すら滅多に無いのは酷すぎるw
0703nobodyさん
2009/01/12(月) 20:51:55ID:???0704nobodyさん
2009/01/12(月) 22:09:45ID:???敷居を下げすぎて失敗した(しかかっている)FW(詳細略)
とは方向性が違うってことは言える。
0705nobodyさん
2009/01/12(月) 22:33:38ID:???Zend Library という名前のほうが相応しい気がするよ。
0706nobodyさん
2009/01/12(月) 22:47:13ID:???0707nobodyさん
2009/01/12(月) 23:28:59ID:???■ このスレッドは過去ログ倉庫に格納されています