私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ【PHP】フレームワークについて語るスレ10【総合】
php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 : ○
レスフィルター : (試験中)
誤爆した
>>803
ましにはなるけどやっぱり遅い。
ましにはなるけどやっぱり遅い。
例えばDBからのデータをとるとき。
オブジェクトの中に保持する
$WB = new Weblog;
$WB->findById( 1 );
echo $WB->getTitle() ;
みたいなヤツと
データセットを返すやつ
$WB = new Weblog;
$data = $WB->findById( 1 );
echo $data['title'] ;
どっちが好きですか??
オブジェクト思考っぽいのは前者かなぁとか思うのですけども
後者のほうが、なんか使いやすい感じもする。
オブジェクトの中に保持する
$WB = new Weblog;
$WB->findById( 1 );
echo $WB->getTitle() ;
みたいなヤツと
データセットを返すやつ
$WB = new Weblog;
$data = $WB->findById( 1 );
echo $data['title'] ;
どっちが好きですか??
オブジェクト思考っぽいのは前者かなぁとか思うのですけども
後者のほうが、なんか使いやすい感じもする。
前者はActiveRecordパターン、後者はDataMapperパターンですね。
自分はDataMapperのほうが好き。
自分はDataMapperのほうが好き。
>>810
前者はActiveRecordっぽいってことになるのかな?それなら、
$WB->findById( 1 );
echo $WB->getTitle() ; // $WB->title もたぶん可
$WB->title = 'new title';
$WB->save();
とかできるメリットが結構大きいような。あんまり直接比較できないような気がする。
例えば前者でも、後者との折衷で返値を持つようにして、
$data = $WB->findById(1);
echo $data->title; // 配列で返せば echo $data['title'] も可
とかやることは可能だろうし。
前者はActiveRecordっぽいってことになるのかな?それなら、
$WB->findById( 1 );
echo $WB->getTitle() ; // $WB->title もたぶん可
$WB->title = 'new title';
$WB->save();
とかできるメリットが結構大きいような。あんまり直接比較できないような気がする。
例えば前者でも、後者との折衷で返値を持つようにして、
$data = $WB->findById(1);
echo $data->title; // 配列で返せば echo $data['title'] も可
とかやることは可能だろうし。
あ、すみません。状況を書いていませんでした。
初心者教育みたいな感じで使うものです。
PHPの基礎的なこと、PHPとHTMLが混在するアレをやったあとで
実践編としてMVC的な考え方を導入しようと思っています。
Vの切り出しはわりとすんなりできるのですが
Mの例はどっちかなぁ。。という。
善し悪しは一概には言えないと思うので
いっそ、好き嫌いを聞いてみようとw
初心者教育みたいな感じで使うものです。
PHPの基礎的なこと、PHPとHTMLが混在するアレをやったあとで
実践編としてMVC的な考え方を導入しようと思っています。
Vの切り出しはわりとすんなりできるのですが
Mの例はどっちかなぁ。。という。
善し悪しは一概には言えないと思うので
いっそ、好き嫌いを聞いてみようとw
>>812
>あんまり直接比較できないような気がする。
はいw
なので好き嫌いを聞いてみようかな、と。
または感じるメリットかな?
有名そうなフレームワークを見てみましたが
どっちが優勢というわけでもないようです。
>あんまり直接比較できないような気がする。
はいw
なので好き嫌いを聞いてみようかな、と。
または感じるメリットかな?
有名そうなフレームワークを見てみましたが
どっちが優勢というわけでもないようです。
>>814
オブジェクトは実際に存在するモノ、という説明があるるじゃないですか。
それにメッセージを投げて、状態を変える、みたいな。
そうすると、前者のほうが、Weblogオブジェクトとしてより理解しやすいかな、と。
後者は、どっちかとういうとデータベースオブジェクトって感じ。
って、感覚ばっかりいってますね私。
オブジェクトは実際に存在するモノ、という説明があるるじゃないですか。
それにメッセージを投げて、状態を変える、みたいな。
そうすると、前者のほうが、Weblogオブジェクトとしてより理解しやすいかな、と。
後者は、どっちかとういうとデータベースオブジェクトって感じ。
って、感覚ばっかりいってますね私。
>>810
$weblog = new Weblog();
$weblog->getTitle(); // コンストラクタ実行した直後にメソッドが死んでるってふざけてるの?
$weblog->findById(1); // 何を見つけるの?え、getTitle が生き返るの?ザオリクなの?
$weblog->setTitle('new title');
$weblog->save(); // 今の状態を永続化しますね
$weblog->findById(2);
if ($weblog->getTitle() !== 'new title') {
// setTitle 呼んでないのになんでタイトル変わってるの?findById 呼んだせいなの?
// findById で始まるトランザクションはどこまで続くの?野をこえ山をこえるの?
// というか働きすぎじゃないの?コンストラクタ以上にコンストラクタ味なの?
}
そんな訳で後者が好きです
$weblog = new Weblog();
$weblog->getTitle(); // コンストラクタ実行した直後にメソッドが死んでるってふざけてるの?
$weblog->findById(1); // 何を見つけるの?え、getTitle が生き返るの?ザオリクなの?
$weblog->setTitle('new title');
$weblog->save(); // 今の状態を永続化しますね
$weblog->findById(2);
if ($weblog->getTitle() !== 'new title') {
// setTitle 呼んでないのになんでタイトル変わってるの?findById 呼んだせいなの?
// findById で始まるトランザクションはどこまで続くの?野をこえ山をこえるの?
// というか働きすぎじゃないの?コンストラクタ以上にコンストラクタ味なの?
}
そんな訳で後者が好きです
ようは、前者が参照渡しで後者が値渡しみたいな感じかな
前者でも、データセットを返す機能がほしければそういうメゾッドを実装すればいいわけで
基本的にはオブジェクトの中で簡潔してるほうがいいかなぁって気もするし
後者だけだと、なんか丸投げな感が機能不足って感じだから前者のが好みかな
ってか使用用途が微妙に違う気がする
前者でも、データセットを返す機能がほしければそういうメゾッドを実装すればいいわけで
基本的にはオブジェクトの中で簡潔してるほうがいいかなぁって気もするし
後者だけだと、なんか丸投げな感が機能不足って感じだから前者のが好みかな
ってか使用用途が微妙に違う気がする
前者も後者もドメインオブジェクトにデータベースへのアクセスロジックを持っているという点では
アクティブレコードに類似してるけど、教科書(PofEAA)にならうならfindByIdメソッドは
新たに生成したWeblogのインスタンスを返すべき。
function findById($id) {
...
$data = mysql_fetch...
$weblog = new Weblog();
$weblog->setTitle($data['title']);
return $weblog;
}
アクティブレコードに類似してるけど、教科書(PofEAA)にならうならfindByIdメソッドは
新たに生成したWeblogのインスタンスを返すべき。
function findById($id) {
...
$data = mysql_fetch...
$weblog = new Weblog();
$weblog->setTitle($data['title']);
return $weblog;
}
>>810のどっちかっていう話より、$obj->getTitle() が気になる
値を参照するだけならむしろ $obj->get('title') の方がわかりやすいし、場合によっては
配列使った方が楽できるような気もする
なんかこの辺の、Java風オブジェクト指向っぽいまわりくどい記述が好きになれない
値を参照するだけならむしろ $obj->get('title') の方がわかりやすいし、場合によっては
配列使った方が楽できるような気もする
なんかこの辺の、Java風オブジェクト指向っぽいまわりくどい記述が好きになれない
>>820
>値を参照するだけならむしろ $obj->get('title') の方がわかりやすいし
はい。
クラス変数を直接触らせないためのgetter,setterって目的だったら同じことですよね。
実は私も、それでいいんじゃないのかな?と思ったりしましたが
いろいろなフレームワークやOOPの説明を見ても
そういう実例がなかったので入れませんでした。
>値を参照するだけならむしろ $obj->get('title') の方がわかりやすいし
はい。
クラス変数を直接触らせないためのgetter,setterって目的だったら同じことですよね。
実は私も、それでいいんじゃないのかな?と思ったりしましたが
いろいろなフレームワークやOOPの説明を見ても
そういう実例がなかったので入れませんでした。
自分はget("title")よりgetTitle()派だなぁ
多機能メゾッドはあまり好きくない
多機能メゾッドはあまり好きくない
get('title')だとエディタで補完できないし、スペル間違える可能性もあるよね
>>824
__call() での自動呼び出しとかじゃないの?全部書いちゃうの?
今はどうなのか詳しくは知らないけど、RDBのフィールド名って大文字小文字を区別しないことがあって、キャメルケースは使いにくかったように思う。
だから、いちいち login_password <=> LoginPassword みたいな書き換えが起こるってことだけでJavaっぽいのは違和感があるなー
__call() での自動呼び出しとかじゃないの?全部書いちゃうの?
今はどうなのか詳しくは知らないけど、RDBのフィールド名って大文字小文字を区別しないことがあって、キャメルケースは使いにくかったように思う。
だから、いちいち login_password <=> LoginPassword みたいな書き換えが起こるってことだけでJavaっぽいのは違和感があるなー
> $obj->get('title')
引数に title2 を与えたら何が返ってくるんだ?
汎用的なコンテナじゃないのだから
部品へのインターフェイス、getTitle() を用意すべき
>>826
824は静的テストでチェックできるかどうかを言いたいんでしょ
引数に title2 を与えたら何が返ってくるんだ?
汎用的なコンテナじゃないのだから
部品へのインターフェイス、getTitle() を用意すべき
>>826
824は静的テストでチェックできるかどうかを言いたいんでしょ
DAOが扱うデータの構造を知らないなんてことはないし、
ユーザ側が直接文字列を投げ込まないといけないようなメゾッドはなんかイマイチ感
ユーザ側が直接文字列を投げ込まないといけないようなメゾッドはなんかイマイチ感
そもそも(特にPHPで実装されている)DAOがダサイっていう意見ではないのかと。
利用する側からしたら、補完機能付きエディタを使うんでなければ 'title' を 'tilte' なんて
書き間違えてあちゃーも getTitle() を getTilte() であちゃーも大して違いはない。
どっちでも例外吐こうと思えば吐けるし。
メソッド名の補完や静的チェックに関しては思想が違うとしか言いようがない。
ActiveRecordも流行の実装は自動的で動的なメソッド定義だし。そんなの静的チェック
なんて(むちゃくちゃ頑張らないと)できないんじゃ?
利用する側からしたら、補完機能付きエディタを使うんでなければ 'title' を 'tilte' なんて
書き間違えてあちゃーも getTitle() を getTilte() であちゃーも大して違いはない。
どっちでも例外吐こうと思えば吐けるし。
メソッド名の補完や静的チェックに関しては思想が違うとしか言いようがない。
ActiveRecordも流行の実装は自動的で動的なメソッド定義だし。そんなの静的チェック
なんて(むちゃくちゃ頑張らないと)できないんじゃ?
シングルトンやサービスロケーターは結局のところグローバルじゃないかね、ケシカラン
とか
DIコンテナって結局GoFのストラテジーじゃないか、イランイラン
とか
OOPって偉い人同士でいつもそんな事言い合ってる、と俺印象。
とか
DIコンテナって結局GoFのストラテジーじゃないか、イランイラン
とか
OOPって偉い人同士でいつもそんな事言い合ってる、と俺印象。
こんなこと言う奴がいたらアホかと思うけどな
>DIコンテナって結局GoFのストラテジーじゃないか、イランイラン
>DIコンテナって結局GoFのストラテジーじゃないか、イランイラン
これでいいだろ。
error_reporting(E_ALL);
print $row['tilte'];
error_reporting(E_ALL);
print $row['tilte'];
>>833
すみません、おもしろい話が思いつきません
すみません、おもしろい話が思いつきません
symfony使ったことない
PEARでインストール出来るみたいだけど、PEARに依存してる?
本体や拡張のどこかで PEAR.php をrequireしたりしてたりしないよね。
PEARでインストール出来るみたいだけど、PEARに依存してる?
本体や拡張のどこかで PEAR.php をrequireしたりしてたりしないよね。
シンフォニー JAVA的
cake ROR的
CI PHP的
俺印象。どれも使った事は無い。
cake ROR的
CI PHP的
俺印象。どれも使った事は無い。
Java的とかPHP的とか例えが狂ってるだろ
使ったことがないんじゃなくて使えないんだろ
使ったことがないんじゃなくて使えないんだろ
>>848
~的は使った人から聞いての俺なりの印象。
クリケットは英国的
これ聞いてスポーツの話してんのに国の話して狂ってるとか言ってるのがお前。イメージ伝わらなかったらそれでいいんでスルーしろよ。
それ以上やりたいならURL指定してくれ。そこでいくらでも粘着つき合ってやる。
~的は使った人から聞いての俺なりの印象。
クリケットは英国的
これ聞いてスポーツの話してんのに国の話して狂ってるとか言ってるのがお前。イメージ伝わらなかったらそれでいいんでスルーしろよ。
それ以上やりたいならURL指定してくれ。そこでいくらでも粘着つき合ってやる。
>>849
それどういうイメージ?
それどういうイメージ?
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
みんなの評価 : ○類似してるかもしれないスレッド
- 【PHP】フレームワークについて語るスレ10【総合】 (1001) - [100%] - 2008/8/24 19:04 ○
- 【PHP】フレームワークについて語るスレ12【総合】 (994) - [98%] - 2009/3/19 13:46 ○
- 【PHP】フレームワークについて語るスレ13【総合】 (985) - [98%] - 2009/9/23 3:04 ○
- 【PHP】フレームワーク CakePHP 3ホール目【本命】 (1001) - [59%] - 2008/6/19 7:19 ○
- 【PHP】セッションについて語ろう!【PHP】 (829) - [58%] - 2018/6/27 23:16 ○
- 【PHP】フレームワーク CakePHP 6ホール目【v1.2】 (933) - [57%] - 2009/8/19 2:06 ○
- 【PHP】フレームワーク CakePHP 5ホール目【v1.2】 (985) - [57%] - 2009/3/7 4:53 ☆
- 【PHP】フレームワーク CakePHP 7ホール目【v1.2】 (1001) - [57%] - 2010/3/18 1:18 ○
- 【PHP】フレームワーク CakePHP 4ホール目【v1.2】 (1001) - [57%] - 2008/12/19 21:06 ○
トップメニューへ / →のくす牧場書庫について