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

ZendFrameworkってどうよ?

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/10/07(土) 02:49:15ID:6wQ8r0Dc
ようやくVer.1.0が出るらしいね
これってどうよ?

PHP5に移行したほうがいいのかな
0583nobodyさん2007/10/25(木) 23:19:10ID:???
aaa(\r)bbb を aaa(\n)bbb にするかもしれないから
CrRemover って名前はどうかな

そのまま名前にしちゃえばいいんじゃない?
WellKnownFilterToUnificateNewlineCodeToLf とかw
0584nobodyさん2007/10/25(木) 23:25:04ID:???
>WellKnownFilterToUnificateNewlineCodeToLf
こんなの嫌です><

>CrRemover
にしときます!
0585nobodyさん2007/10/25(木) 23:25:35ID:???
nl2lf
だと関数みたいだよね
0586nobodyさん2007/10/25(木) 23:32:51ID:???
ポチ
0587nobodyさん2007/10/26(金) 17:21:16ID:???
Ethnaたんハァハァ
0588nobodyさん2007/10/27(土) 00:02:29ID:???
なにやら海外生活に興味津津な奴がいるな
0589nobodyさん2007/10/27(土) 01:22:28ID:???
http://sourceforge.net/search/index.php?all_words=zend+framework

ここでZend_Formを見つけたんやけど
なんでこれだけこんなところで配布してんの?
05905392007/10/28(日) 01:00:56ID:???
>>589
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
05925912007/10/28(日) 10:46:21ID:???
ごめんトンチンカンなこと言ってた。
0593nobodyさん2007/10/28(日) 11:12:23ID:???
Zendがそういう規約作って無くても
ネームスペース縛りが厳しいPHPで
オレオレライブラリにZendのプレフィックス
安易に使っちゃう奴の気が知れん
0594nobodyさん2007/10/28(日) 13:51:04ID:???
zfのwikiで考えてるのと同じ仕様のものを非公式に配布してるってことじゃないの?
それでもややこしいことしてくれてるけど
0595nobodyさん2007/10/29(月) 01:59:27ID:???
http://framework.zend.com/manual/ja/zend.mail.html#zend.mail.introduction.sendmail

Zend_Mail::setDefaultTransport($tr);
で
$mail = new Zend_Mail();
に影響する理由が良く分からんのですが、、、
どなたか教えて栗


あと、
Zend_Mail::setDefaultTransport($tr);
じゃなくて、
new Zend_Mail();
でインスタンス生成したあとに '[email protected]'を
指定する方法きぼんぬです
0596nobodyさん2007/10/30(火) 13:07:58ID:???
>>595
staticだからってことなんじゃないの?

あと、
$mail = new Zend_Mail();
$mail->send($tr);
0597nobodyさん2007/10/31(水) 04:47:05ID:???
Zend_Config
Zend_Mail
Zend_Db
が使いやすいな〜と思い、
ZF使いになった俺です。

極力ZFを使用するように努めてるんですが、
たとえば認証部分の場合、
DBにユーザ情報格納するときには、
DBのuserテーブル、IDとPASSでwhere句で調べて、1行じゃなければアウト、って
いう俺俺クラスを作ったほうが、
Zend_AuthやZend_Aclを使うよりも恐ろしく楽な気がします。

こういったときの使い分け基準ってみなさんどうしてますか?
0598nobodyさん2007/10/31(水) 05:31:04ID:???
俺も極力ZFのやつで・・・
って考えて作って行ってたけど
無理だと思ってやめた
0599nobodyさん2007/11/01(木) 04:05:54ID:???
Zend_Mail::sendの結果で
if処理したい場合、
$result = Zend_Mail::send;
if( $result ){
echo "成功";
}else{
echo "失敗";
}
でよかとでしょうか?
マニュアルにはboolenとか書いてないとですが。
0600nobodyさん2007/11/01(木) 08:46:28ID:yKQSluaW
>>599

* @return Zend_Mail Provides fluent interface
06016002007/11/01(木) 08:47:16ID:???
上げちゃった。ごめん。
0602nobodyさん2007/11/01(木) 12:46:57ID:???
1.0.2インスコしてるが、あんま使わねーな
06035992007/11/01(木) 13:42:31ID:???
>>600
おいらにはそれを訳す能力がありません。
へるぷみ
0604nobodyさん2007/11/01(木) 19:14:11ID:???
>>603
つ辞書
つ教科書
つ中学校の先生
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
06065992007/11/02(金) 01:49:05ID:???
Zend_Mail Provides fluent interface
Zend_Mail は「流れるようなインタフェース」を提供する
が return?
メソッドチェーンと何の関連が。。。
全然意味わからんとです。
0607nobodyさん2007/11/02(金) 01:57:42ID:???
@return Zend_Mail -- Provides fluent interface
  ↓
返す型:Zend_Mail …… fluent interface を提供するため。

599は>>605のリンク先を少しは読め
0608nobodyさん2007/11/03(土) 05:21:17ID:???
ZFはFWのFWとなるべく生まれてきたんじゃないかと思う。
FWのFWというかDSLのDSLというか。
0609nobodyさん2007/11/03(土) 06:06:39ID:???
dslって何だ?
adsl?
0610nobodyさん2007/11/03(土) 12:32:41ID:???
PHPの文法じゃDSLとは言い難いだろ
0611nobodyさん2007/11/04(日) 00:45:50ID:pUsvR5iH
Db_Table_Rowって昔
user_nameみたいなカラムを

$row->userName

みたいにするような感じじゃなかった?
0612nobodyさん2007/11/04(日) 01:03:54ID:???
だからdslって何なんだよ
Nintendo DS Lightのことか?
0613nobodyさん2007/11/04(日) 01:39:49ID:???
ttp://itpro.nikkeibp.co.jp/article/COLUMN/20070604/273453/?P=4&ST=oss
Glenn Vanderburg氏*3によれば,メタプログラミング機能が最も活用できるのはDSL(Domain Specific Language)の分野なのだそうです。
DSLとは特定の分野向けに機能を強化した小規模なプログラミング言語のことで,昔からあるアイディアです。

だってさ
0614nobodyさん2007/11/04(日) 17:38:17ID:pUsvR5iH
http://ho.ge/user/:username

みたいなページで:usernameのユーザーが登録されてないときに
404ページ出す場合ってforwardでエラーページに飛ばすべきか
throw new Zend_Controller_Dispatcher_Exception()をするべきか
どっちがいいですか
0615nobodyさん2007/11/04(日) 18:40:59ID:???
ちんぽまるだしで全部解決
0616nobodyさん2007/11/05(月) 11:16:12ID:???
>>614
Controllerの中でerrorActionを定義するのが簡単
その次がException
0617nobodyさん2007/11/05(月) 12:46:18ID:???
しばらく見てないけど
Zendルータってもう使いものになるレベルになってんの?
0618nobodyさん2007/11/06(火) 20:29:30ID:???
いつのバージョンと比較してるのかは知らんが
使えないのは、単にお前の能力不足じゃないのか
0619nobodyさん2007/11/07(水) 02:53:53ID:???
いや…
前見た時はなんかろくすっぽ実装されてなかったけど
0620nobodyさん2007/11/07(水) 02:55:45ID:???
ってかルータ使うのに能力も何もねーだろ・・・
意味不明な煽りすんな氏ね>>618
0621nobodyさん2007/11/08(木) 02:26:48ID:???
Zend_Log のDB使用の際のイベントの追加の仕方がよく分からないんですが、
下記のように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:???
>>617
まだがっつりとは触ってないけど、私見では十分使えるレベルだと思う。
Net_URL_Mapperなんかでごりごり書くよりも直感的で、本当にルータっぽく
設定できるので、個人的には結構気に入っている。というか、他の機能が
まだ少し未熟な(好意的に見れば柔軟性に富んだ)感触なのに対して、ほぼ唯一
そのまま使える機能といってもいいw

むしろ、Validator周りが予想以上に使えなくて、今頑張ってるよ…。
0623nobodyさん2007/11/10(土) 00:36:32ID:grKOANVo
>>622
その辺はZend_Formとかとくっつける為にあんな感じなんだろう
0624nobodyさん2007/11/10(土) 00:49:31ID:???
なんで放置されてるZend_Form?適当な事言ってない?
0625nobodyさん2007/11/10(土) 01:04:16ID:???
PonkotsuFramework
0626nobodyさん2007/11/10(土) 02:58:12ID:???
Zend_Log組み込んでるんだけど、
DEBUGはロギングしない、とか後で変更できないの?
わざわざ継承して、debug関数の処理空にする、とかしか思いつかない。
06276262007/11/10(土) 02:59:42ID:???
スマソ、フィルタってのがあるね
0628nobodyさん2007/11/10(土) 15:52:22ID:???
Zend_Db_Adapter_Abstract::insert()
で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:???
>>628
Zend_Db_Profilerで見られるクエリでPDOでbindする前のじゃなかったっけ
だからそれはそれであってるんじゃないの(この仕様もどうかと思うんだけどね)
例外が返ってくることもなくデータが入らないの?
0631nobodyさん2007/11/10(土) 23:10:26ID:???
>>607
objectが返るってことはソースからなんとなくわかったんだが、
結局
>>599のように送信が成功したかどうかで分岐させたい場合、
どんな記述をすればよいの?
0632nobodyさん2007/11/11(日) 01:37:50ID:???
try catch
0633nobodyさん2007/11/11(日) 09:38:19ID:???
>>631
sendで失敗したら例外が投げられるから投げられてたらエラー
tryでsendしてcatchに失敗した時の処理を書く
0634nobodyさん2007/11/11(日) 10:16:36ID:???
Zendframeworkはやはり諸々のお手本として勉強になりますなぁ
ZF周辺の頭脳派集団的オーラがぜひPHPコミュニティ全体に波及しますように
0635nobodyさん2007/11/11(日) 23:29:07ID:???
try catch ってソース汚くなっていやなんだが
ほかの人はあれ好きなの?
0636nobodyさん2007/11/11(日) 23:43:13ID:???
好きなヤツはいないと思うけど、さっくりとException投げられるから仕方なく使ってる
.NetでもSMTPにメールアドレスが拒否られた場合、普通にException投げてくれるから同じ書き方になる
try{mail.send(primary)}
catch
try{mail.send(secondary)}
catch{return false;}
他の言語だとどうなんだろうね
0637nobodyさん2007/11/12(月) 00:32:16ID:OoaTyYVU
try catchの美しさを理解できないのか
0638nobodyさん2007/11/12(月) 00:46:57ID:???
インデントが1段下がるのが嫌だ
0639nobodyさん2007/11/12(月) 01:36:43ID:???
Zend_Db_Tableはリレーションまでまともに使い物になる日は来るんだろうか?
SimonとかいうヤシのProposalはどうも現場感覚が決定的に不足してる感じがする
06405692007/11/12(月) 07:21:42ID:???
throwsがないのが不便。
0641nobodyさん2007/11/12(月) 10:09:01ID:zaguTSbK
汚いって思うやつは、try{〜}の中が長すぎるんだろ。
0642nobodyさん2007/11/12(月) 14:04:06ID:MO0zYBuT
Zend_Mailって日本語もばっちり?
0643nobodyさん2007/11/12(月) 18:00:06ID:???
>>642
OK!
0644nobodyさん2007/11/12(月) 18:03:05ID:???
>>642
一つ書き忘れ。送信者名に日本語使うときの対処方法がZend framework入門の
P299に書いてあります。
0645nobodyさん2007/11/12(月) 18:26:18ID:???
ばっちりちゃいますやんw
06466442007/11/13(火) 13:00:03ID:???
>>645
ゴメソ
06476422007/11/13(火) 19:59:22ID:lFhItDW1
なるほどです。
>>644
給料出たので奮発してその本買って見ます。
0648nobodyさん2007/11/13(火) 20:32:39ID:???
「Zend Framework入門」は別に買わなくてもいいんじゃないかと。
マニュアル以上のことが書いてあるわけでも無いし。

俺は買って損した気分です。
0649nobodyさん2007/11/13(火) 22:09:12ID:???
>>648
同意
0650nobodyさん2007/11/14(水) 01:14:37ID:???
ZF入門は残念ながら内容薄かったね。
英語でよければ「Zendframework in action」がオンライン購入で途中まで読めるようになっており
コチラはもう少し読みやすく実践的なのでモチベーションが上がる。
まぁZFのバージョンアップではやくも内容が古くなりつつあるけど。
0651nobodyさん2007/11/14(水) 01:44:20ID:???
Zend_Viewでビュースクリプトから取得される文字列をデフォでエスケープさせようと弄ってるんだけど、

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:???
poka-n
0653nobodyさん2007/11/14(水) 03:29:33ID:???
try{
$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:???
Zend_Exception
0655nobodyさん2007/11/14(水) 05:29:12ID:???
うわ、これって「Zend_Exction Class が未定義」というエラーにならないんだな。
はじめて知った。さすがPHP、奥が深いな。
0656nobodyさん2007/11/14(水) 10:07:45ID:???
うむ
0657nobodyさん2007/11/14(水) 14:21:55ID:???
Zend_Exception としたところでキャッチされない。
反映行数がinsertの返し値なようだから、
0ならfalseとかthrowとかしなきゃいけない、でファイナルアンサー?
0658nobodyさん2007/11/14(水) 17:50:43ID:???
insertの戻り値ダンプしてみて0だったってこと?
それで例外キャッチできないって絶対何か別の原因があると思うけどなあ
内部で何かエラーがあれば必ずZend_Exception派生の例外は投げられるはずだけど
データの取得(SELECT)はちゃんとできるかい?
06596572007/11/15(木) 12:38:07ID:???
>>658
はい、そうです。
selectなども正常にできています。
意図的にDBパスワードミスとかするとちゃんとcatchしてくれます。

何となく思ったのですが、
653のままでも
本来insertが例外を投げているのであれば、
catchされないままになってしまうので
通常はエラーが出るはずですよね。
0660nobodyさん2007/11/16(金) 03:03:39ID:???
は?insertの返り値が0だったら本当に例外返ってくるのか?
0661nobodyさん2007/11/16(金) 03:55:13ID:???
なんで通ってんのに例外なげんの?
06626582007/11/16(金) 12:18:44ID:???
>>659
うむ

>>660
戻り値が0だったら例外が投げられるとかって事じゃなく
insertが通っているのに戻り値0で
実際にはinsertされてないってのは
何か別の原因が、って意味で書いた
0663nobodyさん2007/11/16(金) 20:37:00ID:???
そりゃどう考えてもスキーマかお前さんのSQL文が悪いんだろう
0664nobodyさん2007/11/16(金) 21:15:28ID:???
Java厨のおいらがPHPやりたくないけどやらざるをえない状況になったんで
ZendFrameworkってどうよ?って質問しに来たんだが、
ざっとスレ読んで放置することにしたわw
0665nobodyさん2007/11/16(金) 22:17:00ID:???
PHPのピの字も分からんうちからFW使おうとすんな。
0666nobodyさん2007/11/16(金) 22:19:53ID:???
PHPって子どものおもちゃじゃないですかwww
0667nobodyさん2007/11/16(金) 22:26:57ID:???
>>666
お兄さん大人なの?おしりの穴貸して欲しいナ
06686642007/11/16(金) 23:12:19ID:???
いや仕事で使ったことはあるよ。てかフレームワークスレも読んだがgdgdだな。
自分で作ることにするわ。汎用性ありそうだったら公開するお。
0669nobodyさん2007/11/16(金) 23:20:25ID:???
>>668
汎用性無くても公開してほすぃ
0670nobodyさん2007/11/16(金) 23:30:58ID:???
いつ頃?
0671nobodyさん2007/11/16(金) 23:46:54ID:???
素直にPhrameでも使っとけよ
0672nobodyさん2007/11/16(金) 23:56:08ID:rj+nso4l
ZF好きだけどな
ソースとかなんでもclassにしちゃうとことか
とっても好感を持てます
0673nobodyさん2007/11/16(金) 23:59:50ID:???
?
それ普通じゃないの
0674nobodyさん2007/11/17(土) 00:49:58ID:???
PHPはModuleとか無いからなぁ
普通にClassにするだろ
0675nobodyさん2007/11/17(土) 01:48:15ID:???
$db->beginTransaction();
ってController_Actionのところでやるのがいいの?
MVCとかにこだわるならコントローラーではやらないほうがいいの?
0676nobodyさん2007/11/17(土) 01:53:00ID:???
どう考えてもビジネスメソッドじゃねぇの?
0677nobodyさん2007/11/17(土) 02:14:26ID:???
じゃあ

User extends Zend_Db_Table
UserProfile extends Zend_Db_Table

みたいな2つがあるとして
ユーザー登録ページみたいなので
2つ同時にinsertするときは
どういう風に
$db->beginTransaction();
するのがいいんですか?
0678nobodyさん2007/11/17(土) 03:03:48ID:???
トランザクション使わないといけないほど重要なページなのならストアドでも使えば?
0679nobodyさん2007/11/17(土) 05:35:35ID:eWyQP34E
例外の扱い方にもよるだろ
0680nobodyさん2007/11/17(土) 11:44:10ID:???
>>677
俺ならUserにregisterメソッドを用意して
その中でbeginTracnsanctionして
UserへのinsertとUserProfileへのinsertを行う
って感じでmodelに押し込めるな
Controllerからはトランザクションを意識したくはないな
0681nobodyさん2007/11/17(土) 16:52:25ID:???
俺はControllerでbeginTracnsanctionしちゃうな。
でUser::insert(),UserProfile::insert()
でControllerでcommitする。
Controllerでトランザクション意識するのってそんなに良くない事かな?
俺はどっちかっていうとmodelでcommitすることに抵抗あるな。
トランザクションの制御はなるべく外側でやりたい。
0682nobodyさん2007/11/17(土) 20:07:19ID:???
それはMVCじゃない
■ このスレッドは過去ログ倉庫に格納されています