ZendFrameworkってどうよ?
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/10/07(土) 02:49:15ID:6wQ8r0Dcこれってどうよ?
PHP5に移行したほうがいいのかな
0556nobodyさん
2007/10/20(土) 02:50:21ID:???ってことは可能なの?
Zend_Controller や Zend_View なしでも
動くようになってるんでしょうか?
0557nobodyさん
2007/10/20(土) 03:44:11ID:hv51ePaW0558nobodyさん
2007/10/20(土) 04:01:10ID:???Zend_Db つかうドライバ(DboSourceを継承したクラス)を書けばいい。
pear::DB用ドライバがコメント除いて100行程度だから簡単だろう
0559nobodyさん
2007/10/20(土) 11:56:16ID:???それってZF内でなんか方針として決まってるんだろうか
それとも今後Zend_Controller前提になるんだろうか
0560nobodyさん
2007/10/20(土) 12:03:07ID:lDCmHmbT0561nobodyさん
2007/10/20(土) 19:45:35ID:hv51ePaWValidate_IsEmptyがちゃんと動かないんだけど
これって正しい動きなの?
0562539
2007/10/21(日) 16:14:54ID:???Zend_Controller や Zend_View なしでもOK
>>558
ドライバ不要
>>559
独立したコンポーネントで使えるのがZFの方針
0563nobodyさん
2007/10/21(日) 17:27:31ID:???0564nobodyさん
2007/10/21(日) 18:44:18ID:???0565nobodyさん
2007/10/21(日) 18:48:20ID:???0566nobodyさん
2007/10/21(日) 20:14:31ID:???0567nobodyさん
2007/10/22(月) 00:05:58ID:nQ80Rs2X0568nobodyさん
2007/10/22(月) 00:17:40ID:???あくまでPHP5用ライブラリね>ZF
0569nobodyさん
2007/10/23(火) 00:05:27ID:???0570nobodyさん
2007/10/23(火) 10:59:20ID:???0571569
2007/10/23(火) 14:06:52ID:???皆さんはどうしてますか?
ディレクトリ分けしているのでしょうか?
0572nobodyさん
2007/10/24(水) 01:30:51ID:???>>569 570
サブディレクトリに分けるだけなら
Zend_Controller_Front::getInstance()したコントローラーに対して
setControllerDirectoryで配列を渡せばいけます。
内部的にはRewriteRouterがデフォだから570さんが間違ってるわけじゃないと思うけど・・・
ところで便乗質問なんだけど
Zend_Controller_Router_RouteとかをZend_Controller_Router_RewriteにaddRouteして独自のパターンで
コントローラーを呼び出せるのはわかったんだけど、
例えば、ドキュメントルートでrewriteしたとして、
fooというサブディレクトリのコントローラーを
http://hoge.hoge.com/foo/controller/action/value/
と呼び出してvalueを取得するようなrouterってできますか?
0573nobodyさん
2007/10/24(水) 03:59:44ID:???insert、updateメソッドのように
SQLを意識しないで使用できるSELECT用のメソッドって
ないのでしょうか?
マニュアル見てみましたが見当たりません。
SELECT文の場合、みなさんシコシコとSQL書いてるんでしょうか。
where句とかを見るとげっそりするのです。
0574nobodyさん
2007/10/24(水) 04:48:56ID:???0575572
2007/10/24(水) 08:27:04ID:???参考までに一応書いておきます。
$route = new Zend_Controller_Router_Route(
'foo/:controller/:action/:value',
array('module' => 'foo')
);
$router = new Zend_Controller_Router_Rewrite();
$router->addRoute('foo', $route);
こんな感じでいけました。
ただこれだけだと
http://hoge.hoge.com/foo/controller/action/
と、valueがないとルーティングできないので
$front = Zend_Controller_Front::getInstance();
$front
->setControllerDirectory(array(
"default"=>"/path/to/controller",
"edit"=>"/path/to/controller/edit",
))
->setRouter($router)
としておけばvalueがなくてもOK。
お騒がせしました。
0576nobodyさん
2007/10/24(水) 08:28:26ID:???"edit"=>"/path/to/controller/edit",
は
"foo"=>"/path/to/controller/foo",
です。
0577nobodyさん
2007/10/24(水) 11:58:48ID:???Zend_Db_Selectっていう名前ズバリそのもののクラスがあるだろうが
selectは複雑だから別クラスになってんだよ
0579nobodyさん
2007/10/24(水) 20:05:53ID:???SELECT文は取得条件の項目が多いから単にメソッドが多くなってるだけ
メソッドチェインで取得条件足してくだけだろうが
あれがupdateやinsertみたいな1メソッドだったら引数が複雑になる
0580nobodyさん
2007/10/25(木) 00:11:44ID:???0581nobodyさん
2007/10/25(木) 23:00:57ID:YQ1wPxgbどんな名前がいいと思いますか?
0582nobodyさん
2007/10/25(木) 23:07:21ID:???0583nobodyさん
2007/10/25(木) 23:19:10ID:???CrRemover って名前はどうかな
そのまま名前にしちゃえばいいんじゃない?
WellKnownFilterToUnificateNewlineCodeToLf とかw
0584nobodyさん
2007/10/25(木) 23:25:04ID:???こんなの嫌です><
>CrRemover
にしときます!
0585nobodyさん
2007/10/25(木) 23:25:35ID:???だと関数みたいだよね
0586nobodyさん
2007/10/25(木) 23:32:51ID:???0587nobodyさん
2007/10/26(金) 17:21:16ID:???0588nobodyさん
2007/10/27(土) 00:02:29ID:???0589nobodyさん
2007/10/27(土) 01:22:28ID:???ここでZend_Formを見つけたんやけど
なんでこれだけこんなところで配布してんの?
0590539
2007/10/28(日) 01:00:56ID:???http://mitchellhashimoto.com/zend-form/guide
をみるとnot officially part of the Zend Frameworkと断り書きしてますね
0591nobodyさん
2007/10/28(日) 10:40:55ID:???勝手に"Zend_"で始まる名前を使っちゃだめなんじゃないの?
http://framework.zend.com/manual/ja/coding-standard.naming-conventions.html
0592591
2007/10/28(日) 10:46:21ID:???0593nobodyさん
2007/10/28(日) 11:12:23ID:???ネームスペース縛りが厳しいPHPで
オレオレライブラリにZendのプレフィックス
安易に使っちゃう奴の気が知れん
0594nobodyさん
2007/10/28(日) 13:51:04ID:???それでもややこしいことしてくれてるけど
0595nobodyさん
2007/10/29(月) 01:59:27ID:???Zend_Mail::setDefaultTransport($tr);
で
$mail = new Zend_Mail();
に影響する理由が良く分からんのですが、、、
どなたか教えて栗
あと、
Zend_Mail::setDefaultTransport($tr);
じゃなくて、
new Zend_Mail();
でインスタンス生成したあとに '[email protected]'を
指定する方法きぼんぬです
0596nobodyさん
2007/10/30(火) 13:07:58ID:???staticだからってことなんじゃないの?
あと、
$mail = new Zend_Mail();
$mail->send($tr);
0597nobodyさん
2007/10/31(水) 04:47:05ID:???Zend_Mail
Zend_Db
が使いやすいな〜と思い、
ZF使いになった俺です。
極力ZFを使用するように努めてるんですが、
たとえば認証部分の場合、
DBにユーザ情報格納するときには、
DBのuserテーブル、IDとPASSでwhere句で調べて、1行じゃなければアウト、って
いう俺俺クラスを作ったほうが、
Zend_AuthやZend_Aclを使うよりも恐ろしく楽な気がします。
こういったときの使い分け基準ってみなさんどうしてますか?
0598nobodyさん
2007/10/31(水) 05:31:04ID:???って考えて作って行ってたけど
無理だと思ってやめた
0599nobodyさん
2007/11/01(木) 04:05:54ID:???if処理したい場合、
$result = Zend_Mail::send;
if( $result ){
echo "成功";
}else{
echo "失敗";
}
でよかとでしょうか?
マニュアルにはboolenとか書いてないとですが。
0600nobodyさん
2007/11/01(木) 08:46:28ID:yKQSluaW* @return Zend_Mail Provides fluent interface
0601600
2007/11/01(木) 08:47:16ID:???0602nobodyさん
2007/11/01(木) 12:46:57ID:???0605nobodyさん
2007/11/01(木) 20:16:01ID:???メソッドチェーンで流れるように書けるよってことかな
fluent interfaceについてはこの辺を
http://capsctrl.que.jp/kdmsnr/wiki/bliki/?FluentInterface
http://d.hatena.ne.jp/higayasuo/20071025#1193319054
http://d.hatena.ne.jp/takagimasahiro/20071027/fluentinterface
0606599
2007/11/02(金) 01:49:05ID:???Zend_Mail は「流れるようなインタフェース」を提供する
が return?
メソッドチェーンと何の関連が。。。
全然意味わからんとです。
0607nobodyさん
2007/11/02(金) 01:57:42ID:???↓
返す型:Zend_Mail …… fluent interface を提供するため。
599は>>605のリンク先を少しは読め
0608nobodyさん
2007/11/03(土) 05:21:17ID:???FWのFWというかDSLのDSLというか。
0609nobodyさん
2007/11/03(土) 06:06:39ID:???adsl?
0610nobodyさん
2007/11/03(土) 12:32:41ID:???0611nobodyさん
2007/11/04(日) 00:45:50ID:pUsvR5iHuser_nameみたいなカラムを
$row->userName
みたいにするような感じじゃなかった?
0612nobodyさん
2007/11/04(日) 01:03:54ID:???Nintendo DS Lightのことか?
0613nobodyさん
2007/11/04(日) 01:39:49ID:???Glenn Vanderburg氏*3によれば,メタプログラミング機能が最も活用できるのはDSL(Domain Specific Language)の分野なのだそうです。
DSLとは特定の分野向けに機能を強化した小規模なプログラミング言語のことで,昔からあるアイディアです。
だってさ
0614nobodyさん
2007/11/04(日) 17:38:17ID:pUsvR5iHみたいなページで:usernameのユーザーが登録されてないときに
404ページ出す場合ってforwardでエラーページに飛ばすべきか
throw new Zend_Controller_Dispatcher_Exception()をするべきか
どっちがいいですか
0615nobodyさん
2007/11/04(日) 18:40:59ID:???0617nobodyさん
2007/11/05(月) 12:46:18ID:???Zendルータってもう使いものになるレベルになってんの?
0618nobodyさん
2007/11/06(火) 20:29:30ID:???使えないのは、単にお前の能力不足じゃないのか
0619nobodyさん
2007/11/07(水) 02:53:53ID:???前見た時はなんかろくすっぽ実装されてなかったけど
0621nobodyさん
2007/11/08(木) 02:26:48ID:???下記のようにnew Zend_Log_Writer_Db時点($columnMapping)で、追加予定のイベント指定して、
new Zend_Logでインスタンス生成してから
setEventItemするという順で良いのでしょうか?
$db = Zend_Db::factory('PDO_MYSQL', $params);
$columnMapping = array('lvl' => 'priority', 'msg' => 'message', 'pid' => 'pid');
$writer = new Zend_Log_Writer_Db($db, 'log_table_name', $columnMapping);
$logger = new Zend_Log($writer);
$logger->setEventItem('pid', getmypid());
0622nobodyさん
2007/11/09(金) 21:37:56ID:???まだがっつりとは触ってないけど、私見では十分使えるレベルだと思う。
Net_URL_Mapperなんかでごりごり書くよりも直感的で、本当にルータっぽく
設定できるので、個人的には結構気に入っている。というか、他の機能が
まだ少し未熟な(好意的に見れば柔軟性に富んだ)感触なのに対して、ほぼ唯一
そのまま使える機能といってもいいw
むしろ、Validator周りが予想以上に使えなくて、今頑張ってるよ…。
0623nobodyさん
2007/11/10(土) 00:36:32ID:grKOANVoその辺はZend_Formとかとくっつける為にあんな感じなんだろう
0624nobodyさん
2007/11/10(土) 00:49:31ID:???0625nobodyさん
2007/11/10(土) 01:04:16ID:???0626nobodyさん
2007/11/10(土) 02:58:12ID:???DEBUGはロギングしない、とか後で変更できないの?
わざわざ継承して、debug関数の処理空にする、とかしか思いつかない。
0627626
2007/11/10(土) 02:59:42ID:???0628nobodyさん
2007/11/10(土) 15:52:22ID:???で1日ハマってるんだけど、誰か助けてくれ〜〜
$db->insert( $table, $insert_data );
としても全くインサートされない。
Zend_Db_Profiler でクエリー文調べてみたら
INSERT INTO `table` (`hoge`, `hoge2`) VALUES (?, ?)
となってるんだが、ホワィ??
なぜにプリペアドステートメント?
0629nobodyさん
2007/11/10(土) 16:37:29ID:???0630nobodyさん
2007/11/10(土) 18:43:54ID:???Zend_Db_Profilerで見られるクエリでPDOでbindする前のじゃなかったっけ
だからそれはそれであってるんじゃないの(この仕様もどうかと思うんだけどね)
例外が返ってくることもなくデータが入らないの?
0631nobodyさん
2007/11/10(土) 23:10:26ID:???objectが返るってことはソースからなんとなくわかったんだが、
結局
>>599のように送信が成功したかどうかで分岐させたい場合、
どんな記述をすればよいの?
0632nobodyさん
2007/11/11(日) 01:37:50ID:???0633nobodyさん
2007/11/11(日) 09:38:19ID:???sendで失敗したら例外が投げられるから投げられてたらエラー
tryでsendしてcatchに失敗した時の処理を書く
0634nobodyさん
2007/11/11(日) 10:16:36ID:???ZF周辺の頭脳派集団的オーラがぜひPHPコミュニティ全体に波及しますように
0635nobodyさん
2007/11/11(日) 23:29:07ID:???ほかの人はあれ好きなの?
0636nobodyさん
2007/11/11(日) 23:43:13ID:???.NetでもSMTPにメールアドレスが拒否られた場合、普通にException投げてくれるから同じ書き方になる
try{mail.send(primary)}
catch
try{mail.send(secondary)}
catch{return false;}
他の言語だとどうなんだろうね
0637nobodyさん
2007/11/12(月) 00:32:16ID:OoaTyYVU0638nobodyさん
2007/11/12(月) 00:46:57ID:???0639nobodyさん
2007/11/12(月) 01:36:43ID:???SimonとかいうヤシのProposalはどうも現場感覚が決定的に不足してる感じがする
0640569
2007/11/12(月) 07:21:42ID:???0641nobodyさん
2007/11/12(月) 10:09:01ID:zaguTSbK0642nobodyさん
2007/11/12(月) 14:04:06ID:MO0zYBuT0644nobodyさん
2007/11/12(月) 18:03:05ID:???一つ書き忘れ。送信者名に日本語使うときの対処方法がZend framework入門の
P299に書いてあります。
0645nobodyさん
2007/11/12(月) 18:26:18ID:???0647642
2007/11/13(火) 19:59:22ID:lFhItDW1>>644
給料出たので奮発してその本買って見ます。
0648nobodyさん
2007/11/13(火) 20:32:39ID:???マニュアル以上のことが書いてあるわけでも無いし。
俺は買って損した気分です。
0650nobodyさん
2007/11/14(水) 01:14:37ID:???英語でよければ「Zendframework in action」がオンライン購入で途中まで読めるようになっており
コチラはもう少し読みやすく実践的なのでモチベーションが上がる。
まぁZFのバージョンアップではやくも内容が古くなりつつあるけど。
0651nobodyさん
2007/11/14(水) 01:44:20ID:???public function __set($key, $val){
if ('_' != substr($key, 0, 1)) {
$raw_key = $key . '__raw';
$this->$raw_key = $val;
return;
}
require_once 'Zend/View/Exception.php';
throw new Zend_View_Exception('Setting private or protected class members is not allowed', $this);
}
public function __get($key){
$raw_key = $key . '__raw';
if(strpos($key, '__noescape') === false){return $this->$raw_key;}
else{return $this->escape($this->$raw_key);}
}
こういう書き方ってダメなんだっけ?
__setの時点でWindows環境だと無応答、Linuxだとメモリ確保できないぞゴルァみたいなエラーが。
0652nobodyさん
2007/11/14(水) 01:49:41ID:???0653nobodyさん
2007/11/14(水) 03:29:33ID:???$db = Zend_Db::factory('PDO_MYSQL', $params);
$db->insert('table', $params2);
}catch(Zend_Exction $e){
echo "メッセージ: " . $e->getMessage() . "\n";
}
でinsertのエラーがキャッチできないんだけどなぜに?
0654nobodyさん
2007/11/14(水) 03:30:29ID:???0655nobodyさん
2007/11/14(水) 05:29:12ID:???はじめて知った。さすがPHP、奥が深いな。
■ このスレッドは過去ログ倉庫に格納されています