PHPでOOP (894レス)
上下前次1-新
234: に ◆lKs5QMUHoA 2008/02/02(土)19:24 ID:??? AAS
>>218
レスありがとうございます。
イベントドリブンそのものは、VBでWindowsアプリを組んでやったことがあるので
すぐに入れたのですが、Webアプリを作る際、イベントドリブンでしかやった事が
無いというのは致命的だと思ったので、PerlやPHPでやってみています。
(ASP.NETは、便利ではあるが、IISを使えとか、.NET Frameworkを使えとか
非常に限定される。)
構造化プログラミングで、あまり命名規則を考えずにプログラムをしていると、
グローバル変数や関数が多くなった時、その把握が出来なくなったりする
わけなのですが、そういう苦労する体験をした後、OOPを習うと、その便利な部分が
省4
235(1): 2008/02/02(土)19:59 ID:??? AAS
人間て暖かいにゃぁ
ポカ・ポカ テンキュー
236(1): 2008/02/02(土)21:30 ID:??? AAS
>>233
PHP4では全てパブリックだけど例えばC#では以下の実装になるんだ
public object Execute(object parpam)
protected virtual object _OnExecute(object parpam)
CFControlから_OnExecuteメソッドを隠蔽する意図なんだよ。
_OnExecuteはCFViewやCFModelのサブクラスにだけ見えれば十分なんだ。
237: に ◆lKs5QMUHoA 2008/02/03(日)11:17 ID:??? AAS
>>235
暖かいですねぇ。
>>236
なるほど。ありがとう。
238: に ◆lKs5QMUHoA 2008/02/03(日)14:47 ID:??? AAS
ソースを読んでいて気になった点がありますので、質問させていただきます。
includeの構成についてです。まず、各ファイルに書かれているincludeの部分をまとめます。
[index.php]
include("./cfcontrol.php");
[cfcontrol.php]
include("./cfview.php");
include("./cfmodel.php");
include("./config.php");
[config.php]
// 実際の処理を行うスクリプトをインクルード
省7
239: に ◆lKs5QMUHoA 2008/02/03(日)14:50 ID:??? AAS
includeをばらばらとさせるよりも、以下のように整理したほうが
となんとなく思ったりもしたのです。
[index.php]
include("./config.php");
[config.php]
include("./cfcontrol.php");
include("./cfview.php");
include("./cfmodel.php");
include("./index_view.php");
include("./output_view.php");
省1
240: 2008/02/03(日)15:27 ID:??? AAS
MVC?な俺にはここが一番わかりやすかった
実例コードが載ってるのがいい
PHPでMVC第1回:前編
外部リンク[jsp]:www.stackasterisk.jp
241: 2008/02/03(日)15:52 ID:??? AAS
javaのサイト見ろよ
242: 2008/02/03(日)16:56 ID:??? AAS
やけに伸びるな
243(2): に ◆lKs5QMUHoA 2008/02/03(日)19:47 ID:??? AAS
ソースコードをちょっとだけ改変したものを作ってみた。
メモとかを残していく都合もあると思ったから、HP解説してみた。
外部リンク:www.geocities.jp
本当は、>>1さんがソースの管理とかもしてくれたりしたら、うれしいw
244(1): 2008/02/04(月)01:44 ID:??? AAS
いちいちzipを解凍する気にならない
245: 2008/02/04(月)09:02 ID:??? AAS
>>243
CFViewクラスに具体的な実装をしちゃダメなんだよ。
そもそもHTMLのフォーム処理とかは、あとでPEARとか使えばいい。
サブクラスをうまく呼び出す仕組みだけを実装していくんだ。
246(1): 2008/02/04(月)14:12 ID:??? AAS
>>244
> サブクラスをうまく呼び出す仕組みだけを実装していくんだ。
kwsk
247(1): 2008/02/04(月)23:36 ID:??? AAS
>>246
構造化プログラミングはルーチンを呼ぶ方向で実装すると思うけど
OOPではルーチンに呼ばれる方向で実装して行く感じだよ。
大枠の骨組みだけを抽象クラスで作成して、処理は具象クラスで行うんだ。
インターフェイスさえ同じならあとで個別にパーツを交換出来たりするからね。
だったら基底クラスのメソッドなんて数個で十分じゃないかと思うんだ。
やたら複雑でよくばりな機能のクラスなんて、再利用の価値がないからね。
248(1): に ◆lKs5QMUHoA 2008/02/05(火)01:28 ID:??? AAS
>>247
レスありがとうございます。
> 構造化プログラミングはルーチンを呼ぶ方向で実装すると思うけど
> OOPではルーチンに呼ばれる方向で実装して行く感じだよ。
私は、継承を活かした設計をした事が無かったので、ちょっと方向性を
誤ってしまったようですね。
Viewは、表示をつかさどるのだから、html表示を請け負うのでは、と
思っていたのですが、それよりも抽象的な枠組みを定義するという
ことですね。
となると、html表示は(PEARを使わないのであれば、)htmlタグの
省2
249: 2008/02/05(火)08:55 ID:??? AAS
>>248
HTML処理のヘルパクラス作成はあまりOOPの勉強にならないとも思うんだ。
もう既に頭の中で実装出来ているだろうし、引数を関数で処理するだけでしょ?
それよりも例えばPEARのHTML_QuickFormやテンプレートレンダラのSmartyを
Viewと連携させる仕組みとかを考えたりした方がよっぽど面白いよ。
すべてをフルスクラッチするプログラミングの方向性は必ずしも得策じゃないよ
既存のライブラリやコンポーネントを上手く利用するのもOOPの要素なんだよ。
250(2): 2008/02/05(火)11:06 ID:??? AAS
OOPで継承を用いた設計について調べてみた。(OOP理論の入門ではなく、
継承を用いた設計などが入った解説)
この連載は良いかもしれない。
オブジェクト指向プログラミング超入門
.NETでオブジェクト指向プログラミングを始めよう
外部リンク[html]:www.atmarkit.co.jp
特に第6回は、今まで出てきていた話題だと思う。
Objectクラスで仮想メソッドToStringをもち、それから派生したクラスは、
オーバーロードをする仕組みを図説していて分かりやすい。
第6回 階層の頂点に立つクラス
省1
251: 2008/02/05(火)11:52 ID:??? AAS
>>250
PHPのプログラマにも非常に参考になると思いますよ。
.NETの世界はクラスベースなので初めからOOPの思考で実装します。
関数が作れないので構造化思考のVB6プログラマとか、クラスをnewせずに
引数を大量に渡すスタティックメソッドを呼んだりしてしまいます・・・
PHPはC言語での関数モジュールを呼び出す実装スタイルに近いので
やはりクラスを使って構造化プログラミングをしちゃいがちですね。
普及しているPHP4がOOP対応不十分なのと、開発環境が貧弱であることも
PHPでOOPがなかなか利用されない原因になってたりしますよね。
プロテクテッドメソッドの概念とかIDEがないと、なんでそうするのか
省1
252(2): 2008/02/05(火)11:56 ID:??? AAS
AA省
253: 2008/02/05(火)12:16 ID:??? AAS
AA省
上下前次1-新書関写板覧索設栞歴
あと 641 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.012s