PHPでOOP (894レス)
上下前次1-新
702: 2009/02/27(金)13:31 ID:??? AAS
>>698
性能を求めるならフレームワークなんて使うなって話
703(1): [age] 2009/02/27(金)19:50 ID:??? AAS
>>698が言ってる「性能」って何?
これは釣りなのか?
704: 2009/02/27(金)20:00 ID:??? AAS
「やあ、とりあえず性能の一番いいやつを一つくれないか。」
「今日はCakePHPがお勧めとなっております。」
「じゃあ、そいつをくれ。」
「かしこまりました。」
705(1): 2009/02/27(金)20:35 ID:??? AAS
>>703
なんで俺に絡むんだよ。
たった1個上のレスも読めないのか?
釣りなのか?
706: 2009/02/28(土)01:39 ID:??? AAS
>>705
何言ってるんだ?
1個上のレスを読んでるから性能って何って話だよな
707: 2009/02/28(土)02:02 ID:??? AAS
>>697に聞いてくれよ
俺は知らんよ。
使われた言葉返しただけなのにw
708: 2009/02/28(土)04:26 ID:??? AAS
1ファイルにphp+html+css+jsべた書きが催促
709: 2009/02/28(土)08:03 ID:??? AAS
SEO的に最悪だな
710: 2009/02/28(土)08:44 ID:??? AAS
出力されるHTMLがSEOに合ったものなら、途中経過は関係ない。
711: 2009/03/04(水)21:56 ID:vdYaMRth(1) AAS
PHPでMVCってModel, View, Controllerの3クラスに
それぞれ適当な補助クラスをコンポジる感じでok?
712: 2009/03/04(水)22:30 ID:??? AAS
ng
713(1): 2009/03/04(水)22:51 ID:??? AAS
検索するとViewは普通にHTML部分にしてクラスにしない奴が多いが…
それはどうだろう…
714: 2009/03/04(水)23:44 ID:??? AAS
>>713
別にありじゃない?
PHPTALってのもあるし
厳密には、TALに値渡す必要があるので、Viewが純粋なHTMLのみという訳ではないけど
715: 2009/03/05(木)10:13 ID:??? AAS
未だにコントローラが何者なのかわからねえw
コンポーネントってのもよくわからんし。
716: 2009/03/05(木)11:05 ID:??? AAS
基礎中の基礎すぎるだろ
717: 2009/03/05(木)12:25 ID:??? AAS
コントローラの役割そのものがわからないというよりも『どこまでがコントローラがやるべきことなのか?』ってことかな。
ビューとコントローラで迷うことはないけど、モデルとコントローラのどっちに書くべきかな、って言うのが多い。
まぁ、経験で補うもんだろうね。
718: 2009/03/05(木)17:40 ID:??? AAS
100%中の100%!!!!!!!!!!
byとぐろ兄弟
719(1): 2009/03/06(金)04:31 ID:??? AAS
ってか3つに分けようとするから分からないんじゃない?
720: 2009/03/06(金)14:28 ID:??? AAS
>>719
なんだ君も教えて君か
721: 2009/03/10(火)12:40 ID:??? AAS
アセクサ
722: 2009/03/29(日)09:52 ID:??? AAS
アホクサ
723: [age] 2009/04/06(月)08:51 ID:??? AAS
保守しときます。
724: 2009/04/06(月)09:51 ID:??? AAS
保守要らない板だから・・
725: 2009/04/08(水)23:43 ID:??? AAS
PHP研究所って全然PHP関係の書籍ださねーな。
社内だけで技術囲ってんじゃねーぞ。
726: 2009/04/08(水)23:49 ID:??? AAS
全然おもしろくない
727(3): 2009/04/10(金)03:54 ID:4A05Vd6N(1/3) AAS
オブジェクト指向で、MVCのMとCがいまいちつかめない
処理はModel、ViewとModelを制御するController
ってある。
例えば、ある条件を満たしたときに、データファイルからデータ一覧をリスト形式にしたくて、
・データ1
・データ2
・
みたいにずらーと繰り返しして表示するとき、
modelには、ある条件を満たしたしたかどうかを判断する処理を、
viewには<div>やら<ul><li>を、
省6
728(1): 727 2009/04/10(金)03:59 ID:4A05Vd6N(2/3) AAS
ごめん、やっぱりつづかない。
非常にわかりにくいかもしれないけど
こういうときって、素直にcontrollerにwhile処理いれとけばいいのかな。
でも、controllerに制限させるものが二、三個ならいいけど
もっとwhile処理するものが多くなれば、
処理がかぶってくるんだけど、
それが気持ち悪くて・・
なにか上手い回避方法を教えてください
729: 2009/04/10(金)04:08 ID:4A05Vd6N(3/3) AAS
で、一応考えたのが、
viewにはhtmlタグだけを、
modelには条件処理とwhile処理を、
このwhile処理の中にviewで書いたhtmlタグを
放り込んで繰り返し処理。
controllerで、このmodelに引数入れてやれば
このmodelの変数には、
条件処理された結果と、
htmlタグつきのデータ一覧が格納されて、
表示される。
省3
730: 2009/04/10(金)04:22 ID:??? AAS
MVCまだ早いんでないかな
731(1): 2009/04/10(金)09:37 ID:??? AAS
Model はデータをどこからともなく持ってくる。
View にはテンプレートエンジン使って View の中でループさせる。
Controller は Model に「データ持ってこい」と頼んで、受け取ったデータを今度は View に渡して「表示しろ」と頼む。
View は渡されたデータをぶん回して表示する。
「頼む」ってのは メソッドを呼び出すことを指す。
嘘教えてたら許して
732(1): 2009/04/10(金)10:04 ID:??? AAS
>>731
というとつまり、もしも動的にデータを一覧表示させたいときなんかは、
”データ持ってこいとModelに頼む→Viewに渡して表示させる”
という一回の表示を、whileなりなんなりを使って何回も繰り返す操作を
Controllerがやるってことでいいのか。
733: 2009/04/10(金)10:51 ID:??? AAS
date.txtにdate1,date2,date3,date4ていうデータが入ってたとき、
"2"という条件を与えたときに、
date1<br>
date2<br>
"4"という条件を与えたときに、
date1<br>
date2<br>
date3<br>
date4<br>
という一覧を行いたい場合。
省13
734(2): 2009/04/10(金)12:01 ID:??? AAS
>>732
まあ作り方によるんだろうけど……
ループでViewを何回も呼び出すよりも、例えば配列でデータを一度に全部渡しちゃって、Viewにループしてもらったほうがスッキリしない?
Viewの中にPHPの生のコードが入るのを避けたいなら、先に挙げたテンプレートエンジン使うとかすればいいし。
735: 2009/04/10(金)12:17 ID:??? AAS
>>734
たしかにそうか
ループするデータ表示のデザインて単純なものが多いだろうし
デザイン変更するときも、viewにphpのコードが入っててもそこまで苦にはならないか。
テンプレートエンジンどれがいいか決めれないし、
controllerにphpコードの種類がいっぱい入ってくると見にくいし長くなりそうだから
とりあえずはviewでループさせる方法にしてみるわ
あんがと
736(2): 2009/04/10(金)12:48 ID:??? AAS
>>727
レス全部読んでないから、的外れになるかもしれないけど、
MVCの基本コンセプトは『プログラムの着火点(エントリーポイント)は、URLである』
という考え方が中心になっているらしいよ
つまり、どんなWEBアプリもそのプログラムにアクセスしないと何も起こらないという発想。
そこから更に考えを発展させて、URLの一部にメソッドを含めよたのがMVCのポイント。
この、メソッドを含んだURLを処理する枠組みをコントローラにした訳。
だから、コントローラを中心にデータをサーバに貯めるならModelに、
データをユーザに表示するならViewにと処理系を分けた。
一般的にビジネスロジックはModelにとか言われるけど、
省7
737: 2009/04/10(金)13:22 ID:??? AAS
>>736
なるほど
完全に思い込みで、
Vには、phpコードでの処理に関連するものはほとんど無くしてhtml表示メインが良い
みたいになぜか考えてしまっていて、なかなか進めなかった。
>メソッドを含んだURLを処理する枠組みをコントローラにした訳。
>だから、コントローラを中心にデータをサーバに貯めるならModelに、
>データをユーザに表示するならViewにと処理系を分けた。
これで、C、M、Vにはそれぞれこれをしようっていう考えが固まってきて
踏ん切りがついて先にすすめそうだ
省1
738(1): 2009/04/11(土)01:35 ID:??? AAS
ループして全部表示させるっていうのはVの仕様って気がするんだよねー。
最初の1件とか最初から100件とか、或いは全部っていうのはVの都合なわけで、
変更したいって思ったときはVだけ触ればよくしたい。
ってことで、
無駄とかなんとかは気にせずに、純粋な感じでいうと
Cの人は全部もらって、そのままVの人に渡す
っていうのがMVCぽいかな、って思う。
739: 2009/04/11(土)07:42 ID:??? AAS
>>738
俺は、Vの役割は「もらったデータを表示する」だと思ってるから、
ループする処理とかはCの役割だと思うけどな。
Vは、大量データ表示用のフォーマットや、1件詳細表示用のフォーマットを
持っているという形。
Cは、指定された件数のデータを表示させる機能を持っている、という形。
740: 2009/04/11(土)07:47 ID:??? AAS
抽象論も大事だけど、具体的にコードを書いていきながら進めると分かりやすくなるかもしれないね。
質問者さんは、自分の思う発想でコードを書いてさらしてみたらどうかな。
それに対していろいろな人がレビューをすると何か見えてくるかもしれない。
741: [age] 2009/04/11(土)14:03 ID:??? AAS
PHPじゃないけど、こんな記事があった。
ASP.NET MVC入門
外部リンク[html]:www.atmarkit.co.jp
742: [age] 2009/05/07(木)16:51 ID:??? AAS
OOPの理論って奥が深いな。
デザインパターンなども学んで理論に忠実に沿った理想的な
プログラミングをしてみたいなとも思ったけれど、つきつめると
ケースバイケースってことに落ち着くから、こういう、忠実さを
追いかけるのは無駄な考え方のような気もしている。
この考えで合ってるよね?w
743: 2009/05/07(木)16:54 ID:??? AAS
結論出ちゃったじゃないか
744: 2009/05/07(木)20:10 ID:??? AAS
それ、ASP.NETに新しく導入された「ASP.NET MVC」ってフレームワークの記事なんだよ。
そもそもASP.NETはイベントドリブンなフレームワークで、本来の意味でのMVCを採用してたんだけど、StrutsとかRoRとかがウェブで流行ったから、MSも似たようなフレームワークを作ったわけ。
だからのこれまでのASP.NETの方が本来的なMVCに近い。「ASP.NET MVC」は「ASP.NET ウェブMVC」とかって名前にすれば良かったのに。
745: 2009/05/07(木)20:53 ID:??? AAS
M$って、紛らわしい名前つけるのが好きだよね。
ASP.NETにおいてMVCに関する詳しい記事かなと思ったけれど、
実際に読んでみると、まったく別なフレームワークってことだった。
違いについて理解するのがひとつ面倒になったなぁ。
746: 2009/05/07(木)23:05 ID:??? AAS
stackoverflowを作ったヤツね。
747: [age] 2009/05/19(火)20:06 ID:??? AAS
保守しとくね。
748(2): 2009/06/18(木)20:12 ID:??? AAS
なんでカソってんだー
749: 2009/07/02(木)08:55 ID:SGa5I59I(1) AAS
PHPにおけるOOPは100mを自動車で走るようなもの
自転車を使え
走れ
歩いてもいいぞ
750(1): 2009/07/02(木)09:07 ID:??? AAS
OOPを使いまくる必要はないけど
必要な機能をモジュール化したいときにOOPをいいとこ取りすれば便利
751: 2009/07/02(木)09:12 ID:??? AAS
>>748
秋田w
752: 2009/08/27(木)07:51 ID:??? AAS
>>748
最初に設定していた目標が概ね達成出来たからじゃね?w
っていうか、このスレに求めているものを書いていけば
盛り上がりを戻す可能性もあると思うよ。
質問するとか、何かソースを提供するとか。
753: [age] 2009/10/25(日)21:56 ID:??? AAS
一応保守しておきます。
754(1): 2009/10/30(金)22:56 ID:??? AAS
OOPのしっかりしてるFWどれ
755: [age] 2009/11/13(金)21:51 ID:??? AAS
FWは、その開発目的によるので、結論は出ない。
いや、あおりとかじゃなくて。
756(1): 2009/11/19(木)15:33 ID:??? AAS
コードの参考になるのはどれかと
757: 1 ◆SWtzLesEmM 2009/12/17(木)22:30 ID:??? AAS
PHPのフレームワークでMVCのタイプを使ってみました。
同じ機能を作るのに、コードを書く量が少なくて済むと楽ですね!
ただ、MVCだとスクリプトのファイル数が多くなると、ゴチャゴチャして見づらいと思いました。
MVC以外のフレームワークでオススメのものはありますか?
外部リンク:www.slideshare.net
・PAC
・RecursiveMVC(HMVC)
・MMVC
・Doc/View
という仕組みが紹介されていました。
758: 2009/12/17(木)22:33 ID:??? AAS
特に無い
759(1): 1 ◆SWtzLesEmM 2009/12/17(木)22:48 ID:??? AAS
>>754
外部リンク:d.hatena.ne.jp
↑このスライド資料の72ページ目に、PHPフレームワークの評価が紹介されていました。
・CakePHP
世界でも日本でも大流行り。当然日本語での情報量も多い。
Modelが使いやすい。それ以外は嫌いだけど。
Cake3が別フレームワークにfork
・ZendFramework
世界的にシェアNo.1?
書く量の減らないドMフレームワーク
省13
760: 1 ◆SWtzLesEmM 2009/12/17(木)22:56 ID:??? AAS
>>756
外部リンク:d.hatena.ne.jp
>PHPはWeb特化言語という特性上他の言語では見られない強力な仕組みがあります。
>その特徴は他の言語では参照で取り回すところを文字列で取り回すところである、と言えるでしょう。
>可変関数
>PHPのフレームワークは、これを基本としています。ライブラリ、モジュールを動的にロードするのが非常に容易
>可変変数
>このように可変変数や可変引数を組み合わせるだけでも、少ないコード量でかなり複雑なことが可能になります。
各フレームワークのディスパッチ(処理の割当て)の仕組みを見ると、参考になりますね。
761: 1 ◆SWtzLesEmM 2009/12/17(木)23:07 ID:??? AAS
>>750
「名前空間」を活用すると、たくさんモジュールを作っても分類が楽になりますね!
外部リンク:d.hatena.ne.jp
外部リンク:prezi.com
762: 2009/12/17(木)23:10 ID:??? AAS
人の書いた文章を全文コピペするのはどうかと思うよ
763: 2009/12/17(木)23:11 ID:??? AAS
あ、上のは主に>>759に対してね
764: 1 ◆SWtzLesEmM 2009/12/17(木)23:43 ID:??? AAS
>>734
>Viewにループしてもらったほうがスッキリ
そうですね。
データをループ表示させるのは、ビューの役割。
ビューの部分には
・テンプレート(HTMLファイル)
・テンプレートエンジン(HTMLファイルに文字列を当てはめるパーサー)
の二つが含まれている形にすれば、
表示に関するロジック(繰返し表示の処理など)はビューの中に置けばOK
=表示に関する機能を修正する場合、ビューの中を探せばOK
765: 1 ◆SWtzLesEmM 2009/12/18(金)00:45 ID:??? AAS
>>727
MVCのモデルはどんなふうに作るか?という話で、
・トランザクションスクリプト
・ドメインモデル
という二つのスタイルがあるそうです。
2chスレ:php
外部リンク:proshile.blog.drecom.jp
・トランザクションスクリプト
→古きよきC言語時代の関数が主体の書き方
・ドメインオブジェクト
省17
766: 1 ◆SWtzLesEmM 2009/12/18(金)00:55 ID:??? AAS
>>728
C側に書いてあるコードを、なるべくM側の方に移動した方がスッキリするかも?
CとMの間のデータ受け渡しについて、こんな記事がありました。
↓
外部リンク:q.hatena.ne.jp
>個々のSetterをオーバーライド出来るところが
>symfonyの便利な部分じゃないでしょうか。
>これが出来ないと個々のコントローラでデータを加工するハメになります・・。
>「MVCとして洗練されている」というのは
>「MVCに忠実に機能している」というのと同義かと思います。
省1
767: 1 ◆SWtzLesEmM 2009/12/18(金)01:20 ID:??? AAS
>>89
フレームワークを使ってみて、OOPの使い方の理解が深まりました。
皆さん、たくさんのアドバイスをいただき、どうもありがとうございました。
分からないことがあっても、検索したり質問して1個ずつ埋めていけば、確実に進歩できると思います。
どんなプロフェッショナルな人でも、最初は素人だった…
これからPHPの勉強を始める方がいましたら、焦らずに頑張ってくださいね!(*^o^*)/
768: [age] 2010/01/16(土)21:42 ID:??? AAS
どのフレームワーク?
769: [age] 2010/03/05(金)11:55 ID:??? AAS
外部リンク:www.phppro.jp
サイト見つけたので紹介しておきます。
770: [age] 2010/04/20(火)14:58 ID:??? AAS
オブジェクト指向ってrequire文とinclude文みたいな考えと同じかな?
必要なときにどこからでも呼び出せるプログラムみたいなものだよね。
771: 2010/04/20(火)18:56 ID:??? AAS
うん
772(1): 2010/04/21(水)02:32 ID:??? AAS
OOPの説明で一番わかりやすかったのがプレーヤーの例
プレーヤーを継承した CDプレーヤー,MP3プレーヤー がある
それぞれに 再生,停止,早送り,巻き戻し,次トラック,前トラック という機能(メソッド)がある
具体的な処理はそれぞれが行うので,使う人はプレーヤーの処理している内容を
理解している必要はなく,再生したいときに再生ボタンを押すという事だけ
分かっていればいい。(カプセル化)
つまり考え方であって,そういう意味では間違ってないのかもしれない。
773(2): 2010/04/21(水)23:48 ID:??? AAS
それぞれにあるのではなく、プレイヤーという抽象クラスにあるのでは?
774: 2010/04/22(木)01:28 ID:??? AAS
>>773
ダックタイピングなら、それぞれにあってもいいよね
775(1): 2010/04/22(木)20:41 ID:??? AAS
OOPの説明でダックタイピングの例出すの?
776: 772 2010/04/22(木)23:04 ID:??? AAS
>>773
そうなんだけど,具体的な実装がそれぞれ違うという意味で
ああいう書き方にした。
777: 2010/04/23(金)00:43 ID:??? AAS
>>775
PHPは型にしばられない(しばられなさすぎて困る)スクリプト言語だからね。
逆に、静的言語のように型を意識しすぎると、スクリプト言語のメリットが少なくなると思う。
「じゃぁ、お前、クラス階層つかわねーのか?」と言われればノー
コンポーネント(レイヤ)の中では、型を意識し、拡張する場合は継承も使用する。
コンポーネント間の接続は型ではなくメッセージ(メソッド)に束縛させるように意識している。
でも最近は、interface作って、抽象クラス作ってというのがおっくうになってきたので、可能ならメソッドポインタによるコールバックで済ませちゃうこともしばしば。
778: 2010/04/30(金)11:21 ID:??? AAS
Yiiブログチュートリアル 日本語訳
外部リンク[html]:www.craftgear.net
本家の日本語訳が途中でストップしてるけど、こちらは全部訳してある。
本家
外部リンク:www.yiiframework.com
779: [age] 2010/05/22(土)17:38 ID:??? AAS
保守しておきます。
780: 2010/05/24(月)00:43 ID:??? AAS
javaや.NETはたまたPythonあたりの純血PGが書けばOOPっぽいソースになると思うよ。
PerlとかPHPから始めました、ってのはだめだな。
781: 2010/06/09(水)18:32 ID:uqJikGsn(1) AAS
PHP6のオブジェクト指向ってなにか大きな変化ある?
782: 2010/06/09(水)21:02 ID:??? AAS
遅延静的束縛とか
名前空間とか
783: 2010/06/09(水)22:05 ID:??? AAS
名前空間は5.3だろ
784: 2010/06/09(水)22:50 ID:??? AAS
遅延静的束縛もですが
785: 2010/06/11(金)20:18 ID:??? AAS
機能追加がほとんどか。
じゃあ、PHP5のコードをPHP6に移植しても問題なく動くってことでいい?
PHP4→PHP5のときは大変みたいだったけど。
同じ思いをしたくない。
786: 2010/06/12(土)05:01 ID:??? AAS
互換性見れば分かるだろ
787: 2010/06/13(日)07:15 ID:??? AAS
逆に互換性なんかいいから関数の無茶苦茶な命名規則とか直して欲しい
788(1): 2010/06/20(日)11:50 ID:??? AAS
関数はもうほうっておいて、
公式にオブジェクト指向ライブラリを提供すればよい
789: 2010/06/20(日)15:53 ID:??? AAS
>>788
SPLって公式じゃないの?
790: 2010/06/21(月)16:09 ID:L/6UXzEf(1) AAS
質問するのが怖いんだけど、自分はフォームのパーツを呼び出すのに
オブジェクト指向(クラス)を使ってるつもりなんだけど正しいのか自信がない
クラスformPartsの中で各プルダウンやラジオボタンの要素(nameとvalue)を
外部ファイルから読み込んどいて
$fp = new formParts();
$pref = $fp->callPullDown('prefecture',$val);
$job = $fp->callPullDown('job',$val);
$sex = $fp->callRadioButton('sex',$val);
こんな感じでメソッドでパーツの種類を指定しつつ(ラジオボタンかプルダウンか)
そのパーツの要素(都道府県とか職業とか)と既定値($val)を投げて呼び出してる。
省3
791: 2010/06/22(火)02:52 ID:??? AAS
OOではないな
792: 2010/06/22(火)02:53 ID:??? AAS
分からないなら普通に勉強しろよ・・・
793: 2010/06/26(土)22:03 ID:lGwy0O8s(1) AAS
ツールの勉強する前に基本を勉強しろ
794: 2010/06/28(月)10:27 ID:PXXo1bnr(1) AAS
oopってさ
PHP最大の武器であるHTMLとの親和性の高さを殺してるよね
795: 2010/06/28(月)20:02 ID:??? AAS
なんで?
796: 2010/06/28(月)22:25 ID:??? AAS
いまの流行はテンプレートだから
PHPのHTML埋め込みなんてもう古い
797: 2010/06/29(火)01:12 ID:??? AAS
そんな流行もあったねぇ。今は違うよ。
798: 2010/06/29(火)07:49 ID:??? AAS
kwsk
799: 2010/06/30(水)18:24 ID:??? AAS
テンプレートってどんな利点があるの?
そもそもPHP自体テンプレートみたな言語じゃん。
index.php
<?php
$title = "hoge";
$hello = "hello world";
include "template.php";
?>
template.php
<html>
省6
800: 2010/07/01(木)00:39 ID:??? AAS
ほとんどの言語は、HTMLの中で
コードを動かすという発想で作られていない。
コードーの中でHTMLを出力するという発想。
そういう言語ではテンプレートが重要。
PHPでテンプレートの意味が薄いのは確か
ただテンプレートの意味がまったくないかというと、そうではなく
分業作業。つまりプログラマとデザイナに分かれて開発するときは便利。
デザイナはphpコードはまったく知らない。だからなるべくシンプルな
記号レベルの書き方であってほしい。しかもDreamweaverのような
HTMLエディタで見たときに不具合無く表示されるものの方がいい。
801: 2010/07/01(木)14:26 ID:ksuFUfiJ(1) AAS
デザイナーでもHTMLとPHPの繋がりぐらいは分かる
いや、分かるようにPHPを書かなければならいと思う
それがPHP
上下前次1-新書関写板覧索設栞歴
あと 93 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.903s*