PHPでOOP (894レス)
PHPでOOP http://medaka.5ch.io/test/read.cgi/php/1172205352/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
68: nobodyさん [] 2007/05/14(月) 00:46:15 ID:4QCW9ZwU 最近ちょっとだけ解ってきた。 なぜOOPなのかと言えば 再利用とメンテナンス、拡張がやりやすい(やりやすく作ることが出来る)ということがすごくて、 そのためにカプセル化とポリモーフィズムがあって ポリモーフィズムを実現(保証)するために継承や、インターフェイスや抽象クラスがあるって感じなのかな? PHPによるデザインパターンは読んでみても良いと思う。 あと、ゼンドフレームワーク勉強用にZFで動くブログソフトみたいのあるから、それの仕組みと、ZFのソース(全部はきつい
けど関係あるところだけ) を見てみると、結構勉強になると思う。 ttp://www.itmedia.co.jp/enterprise/articles/0702/28/news028.html ttp://www.itmedia.co.jp/enterprise/articles/0703/05/news013.html ttp://www.itmedia.co.jp/enterprise/articles/0703/08/news018.html 記事がちょっと古いから最新バージョンと微妙に違うけど。 まあ、このフレームワークが良いか悪いかは別にして(まだベータだし) OOPバリバリなので、勉強になること間違いなし! http://medaka.5ch.io/test/read.cgi/php/1172205352/68
69: nobodyさん [sage] 2007/05/15(火) 15:55:34 ID:??? しかし PHP関連の本でOOPをわかりやすく書いてあるのが 「ない!」 お勧め教えて http://medaka.5ch.io/test/read.cgi/php/1172205352/69
70: nobodyさん [sage] 2007/05/15(火) 16:01:33 ID:??? 本なんか読むよりPEARやフレームワークのソース読んで 勉強しながら自分なりに書いていけ、金かからないしだしそれが一番の近道 気が付いたらOOPなんて空気のように有って当たり前になるもんだから http://medaka.5ch.io/test/read.cgi/php/1172205352/70
71: nobodyさん [sage] 2007/05/15(火) 16:06:06 ID:??? わかりにくいの例として スコープ演算子(static ::)は2冊読んでもチンプンカンプン そこでぐぐる先生に聞くと http://homepage3.nifty.com/gomi_doji/scopen.htm PHPではないが、ナルホドナルホドと理解できる オブジェクト指向の概要も http://phpspot.net/php/pg%83I%83u%83W%83F%83N%83g%8Ew%8C%FCPHP.html を読むとナルホドナルホドだが、本は意味不明になる 糞った本しか読んでいないかもしれないが一応書いておく 「PHP5プログラミング エキスパート編」 //最強の意味不明 「
MySQL4/PHP5によるWebデータベース構築」 //わかりやすいがODPの章になると意味不明 http://medaka.5ch.io/test/read.cgi/php/1172205352/71
72: nobodyさん [sage] 2007/05/15(火) 16:08:18 ID:??? 書きながら次第にむかつき度が増加して誤字だらけになった(怒 >>70 それ疲れる http://medaka.5ch.io/test/read.cgi/php/1172205352/72
73: nobodyさん [sage] 2007/05/15(火) 17:01:49 ID:??? >>69 独習PHPのクラスらへんの説明は中々分かりやすいよ。 作者があまりいいとはいえんが、ファーストステップにはいい感じ。 http://medaka.5ch.io/test/read.cgi/php/1172205352/73
74: nobodyさん [sage] 2007/05/22(火) 15:14:54 ID:??? 同じ事を色々な言葉で表現するから迷うずら PHPの本読むよりJAVAの本読んだほうが理解できる罠。 http://medaka.5ch.io/test/read.cgi/php/1172205352/74
75: nobodyさん [sage] 2007/05/28(月) 14:46:00 ID:??? 自分が作るだけなら手続き型でいいけど 人の作ったライブラリ使いたいから 最低限、何が書いてあって何をしているのか読めるようになりたい http://medaka.5ch.io/test/read.cgi/php/1172205352/75
76: nobodyさん [sage] 2007/05/29(火) 05:34:16 ID:??? 答えが出てるじゃないか。その使いたいライブラリのコードを読め http://medaka.5ch.io/test/read.cgi/php/1172205352/76
77: nobodyさん [] 2007/06/05(火) 12:23:56 ID:/w569Zaf OOPS http://medaka.5ch.io/test/read.cgi/php/1172205352/77
78: nobodyさん [age] 2007/06/05(火) 19:15:58 ID:??? XOOPS http://medaka.5ch.io/test/read.cgi/php/1172205352/78
79: nobodyさん [] 2007/06/11(月) 22:06:39 ID:2dWIuVC4 >>65に誰もつっこまないのかよ!! DBアクセスの為のクラス書くのかw おそらくPHPインストール時に君のHDDの中にすでに入ってる訳だが… しかもあらゆるDBに同じ書式でアクセス出来るやつが… http://medaka.5ch.io/test/read.cgi/php/1172205352/79
80: nobodyさん [sage] 2007/06/11(月) 23:45:37 ID:??? >>79 なんてやつ? http://medaka.5ch.io/test/read.cgi/php/1172205352/80
81: nobodyさん [sage] 2007/06/12(火) 00:15:06 ID:??? PEARのソースは読まない方が身のため http://medaka.5ch.io/test/read.cgi/php/1172205352/81
82: nobodyさん [] 2007/06/12(火) 06:55:41 ID:e4tfCBN5 79は勘違いしてるが、彼がいいたいのはPearのDBクラスのことだろう http://medaka.5ch.io/test/read.cgi/php/1172205352/82
83: nobodyさん [sage] 2007/06/12(火) 09:31:07 ID:??? 82が勘違いだろ。 単にPDOだろ http://medaka.5ch.io/test/read.cgi/php/1172205352/83
84: 1 ◆SWtzLesEmM [age] 2007/06/12(火) 10:24:12 ID:??? >>73 情報提供どうもありがとうございます。 独習PHPは、図書館でかりて読んでみました。 オブジェクト構文の説明は分かりやすいと思いました。 >>79 DBにアクセスするクラスも勉強のため練習で作ってみようと思いました。 その次に、O/Rマッパーの使い方を練習してみることになるでしょうか? >>82 PHP5に標準で用意されているPDOのことですね。 http://jp2.php.net/pdo PHP Data Objects (PDO) 拡張モジュールは、 PHP の中からデータベースにアクセスするための軽
量で高性能な インターフェイスを定義します。 PDO は PHP 5.1 以降にバンドルされており、PHP 5.0 では PECL 拡張モジュールとして使用可能です。 PDO は PHP 5 の新機能である オブジェクト指向機能を使用しており、それより前のバージョンの PHP では動作しません。 http://medaka.5ch.io/test/read.cgi/php/1172205352/84
85: nobodyさん [sage] 2007/06/12(火) 10:56:05 ID:??? mysqliとどっちがいい? http://medaka.5ch.io/test/read.cgi/php/1172205352/85
86: nobodyさん [sage] 2007/06/12(火) 17:53:32 ID:??? ふとおもったんだが、>>1はできるんじゃないのか。 http://medaka.5ch.io/test/read.cgi/php/1172205352/86
87: nobodyさん [sage] 2007/06/17(日) 01:20:06 ID:??? 被害者増やさないように書いておく。 「PHPデザインパターン入門」は買うな。 最近買った中で最低レベルの悪書。 どっかの英語ページを機械翻訳したようなトンチンカンな用語説明にまじって 何故かApacheとPHPのインストール方法だけが丁寧な日本語で書かれている。 あとはデザインパターン図が羅列してあるだけ。解説ほぼ無し。 3流大学生のコピペ論文を彷彿とさせる。 こんなの真剣に呼んでも絶対わかるようにはならない。 OOP用語の説明は何故かちゃんとしてないのに php.iniにページさ
かれてるけど 網羅して無くて中途半端でページ稼ぎとしか思えない。 中身薄くて有名なヤマダヨウカン本の方がマシに感じるレベル。 http://medaka.5ch.io/test/read.cgi/php/1172205352/87
88: nobodyさん [sage] 2007/06/17(日) 01:28:20 ID:??? なんか良く読むと、この本は解説の日本語が オブジェクト指向で書かれてる気がした。 多分最初にパターン名を記載した時点で、作者の頭の中では 記載されてるページを呼び出してるんだろうと思えてきた。 解説するための日本語はプロシージャ指向で書いてくれと 小一時間問い詰めたい。 この本理解するには色んな本を買って、全部理解した後じゃないと 読めない。意味ねえじゃん。 http://medaka.5ch.io/test/read.cgi/php/1172205352/88
89: nobodyさん [sage] 2007/06/17(日) 01:54:28 ID:??? 軽いフレームワークいじって使うのが一番いいオブジェクト指向の勉強だよ http://medaka.5ch.io/test/read.cgi/php/1172205352/89
90: nobodyさん [sage] 2007/06/17(日) 14:22:50 ID:??? ウェブアプリにオブジェクト指向なんていらないよ。どうせ文字列を加工してデータベースのテーブルのカラムに並べるだけなんだから。 http://medaka.5ch.io/test/read.cgi/php/1172205352/90
91: nobodyさん [sage] 2007/06/17(日) 18:51:52 ID:??? じゃどういうときに必須なんよ http://medaka.5ch.io/test/read.cgi/php/1172205352/91
92: nobodyさん [sage] 2007/06/24(日) 17:09:42 ID:??? オブジェクト指向と言う言葉にまどわされず、 クラスの勉強をすればいいんだよ。 単に、呼び出してるだけだから。 http://medaka.5ch.io/test/read.cgi/php/1172205352/92
93: nobodyさん [sage] 2007/06/24(日) 19:32:38 ID:??? PEARをサンプルみながら見よう見まねでインスタンス作って なんだかんだで実際動いてるんだけど何してるかイマイチ理解出来てないんだよね functionの中でインスタンス作るとその外側ではやっぱアクセスできないのかな PEARDBのインスタンスがあっちゃこっちゃに散らばっちゃって困る http://medaka.5ch.io/test/read.cgi/php/1172205352/93
94: nobodyさん [sage] 2007/06/25(月) 12:32:57 ID:??? >>93 プロパティに入れれ http://medaka.5ch.io/test/read.cgi/php/1172205352/94
95: 1 ◆SWtzLesEmM [age] 2007/07/06(金) 14:33:24 ID:??? >>68 >拡張がやりやすい(やりやすく作ることが出来る) そうみたいですね。 http://www.amazon.co.jp/dp/4822281957/ 「オブジェクト指向でなぜつくるのか」 という本にも、クラスを使うメリットが同じように説明されていました。(・∀・) >>74 Javaの本だと http://www.amazon.co.jp/dp/4797331828/ 「やさしいJava」をすすめられました。 >>86 (σ・Д・)σプログラミング初心者ですΣ(゚Д゚*)=3 >>89 Zend Frameworkの正式版が出ましたね☆ http://frame
work.zend.com/manual/ja/ シンプルなフレームワークを検索したら、CodeIgniterというのがありました。 http://userguide.cilab.info/ http://medaka.5ch.io/test/read.cgi/php/1172205352/95
96: nobodyさん [] 2007/07/08(日) 18:20:46 ID:XFKJF1H9 最近このスレが怖くて見れん俺ガイル なんでそんな成長早いんだよ・・・おかしいだろ・・・orz http://medaka.5ch.io/test/read.cgi/php/1172205352/96
97: テレビできたよー [] 2007/07/10(火) 15:53:51 ID:ZIdzImz8 class TV { var $channel; var $state; var $singleton; function TV() { $this->channel = 1; $this->state = false; } function on() { if(!$this->state) { $this->state = true; echo "電源オン<br />"; $this->reflect(); } else { echo "既に電源はオンになっています<br />"; } } function off() { if($this->state) { $this->state = f
alse; echo "電源オフ<br />"; } else { echo "既に電源はオフになっています<br />"; } } http://medaka.5ch.io/test/read.cgi/php/1172205352/97
98: テレビできたよー [] 2007/07/10(火) 15:54:22 ID:ZIdzImz8 function reflect($c = null) { if($this->state) { if(!empty($c)) { $this->channel = $c; } echo $this->channel . " チャンネルを写します<br />"; } else { echo "電源が入っておりません<br />"; } } } $tv = new TV; $tv->on(); $tv->reflect(8); $tv->on(); $tv->on(); $tv->off(); $tv->off(); $tv->reflect(5); $tv->on(); http://medaka.5ch
.io/test/read.cgi/php/1172205352/98
99: nobodyさん [sage] 2007/07/11(水) 10:41:20 ID:??? 例外投げるようにすれば? http://medaka.5ch.io/test/read.cgi/php/1172205352/99
100: 1 ◆SWtzLesEmM [age] 2007/07/11(水) 12:59:29 ID:??? 例外処理 http://www.phppro.jp/word/E4BE8BE5A496E587A6E79086 2. PHPで例外処理 http://www.phppro.jp/phptips/vol45/eb49e8a31e9132d98a5a7db3df4663e4 PHP5の基本 > 例外処理 http://www.shigeweb.jp/php/project_p/?section=php5oop&page=exception phpspot - 例外処理 http://phpspot.net/php/pg%97%E1%8AO%8F%88%97%9D.html PHP4ではエラー処理といえば、 if ( ($err = func()) != "" ) { die("エラーです"); } のように戻り値のチェックをしてい
ましたが、エラーというものは、呼び出し側がエラー制御を行うのではなく、呼ばれた側で、どういうエラーがあったか、というものがあった方が自然で、呼ばれた側がエラー処理を行うため、モジュールの場合より再利用性が高くなるでしょう。 更に上記では、どういうエラーが起こってエラーが出ているのかということが想像しにくいですね。 そこで try〜catch です。 ■例外処理 http://www.atmarkit.co.jp/flinux/special/php5/php5d.html プログラミングにエラー処理は避けて通れない事項だ。 とはいえ、関数やメソッドからの戻り値を毎回エラ
ーチェックするのは煩雑で面倒でもある。 その煩雑さを回避するため、文法として例外処理を持っている言語もある。 PHP5もそれに倣って、言語仕様として例外処理をサポートした。 文法的にはC++やJavaと同様に、try{ }で投げられた例外をcatch{ }で処理するという流れになる。 ↑とのことですが、汎用性のある関数やメソッドにしたい場合、エラーが発生したときの処理を書く場所は、関数やメソッドを使う方(呼び出す側)にすることもあるでしょうか? =戻り値をチェックするというのは、古いやり方なんでしょうか? http://medaka.5ch.io/test/re
ad.cgi/php/1172205352/100
101: 1 ◆SWtzLesEmM [age] 2007/07/11(水) 13:07:20 ID:??? >>96 PHPプロのメルマガ読んで、知ったかぶりなだけですw お互いがんばりましょう☆(・∀・) http://medaka.5ch.io/test/read.cgi/php/1172205352/101
102: nobodyさん [sage] 2007/07/11(水) 14:16:38 ID:??? いやさ,まず公式マニュアルを読む癖を付けようぜ http://medaka.5ch.io/test/read.cgi/php/1172205352/102
103: nobodyさん [sage] 2007/07/11(水) 14:44:53 ID:??? MVCじゃないとOOPなんて意味ないですかr http://medaka.5ch.io/test/read.cgi/php/1172205352/103
104: nobodyさん [sage] 2007/07/11(水) 17:30:14 ID:??? ( д) ...。。 http://medaka.5ch.io/test/read.cgi/php/1172205352/104
105: nobodyさん [sage] 2007/07/12(木) 02:57:31 ID:??? MVCもデザインパターンの一種じゃなかったっけ? http://medaka.5ch.io/test/read.cgi/php/1172205352/105
106: nobodyさん [sage] 2007/07/12(木) 08:06:18 ID:??? >>100 なんかphpspotのその文はおかしいな。 エラー処理は例外を使おうがそうじゃなかろうが変わらない。 呼ばれた側はどういうエラーがあったか返す責任があるし、 呼んだ側は返ってきたエラーをチェックする責任がある。 エラーが起きた時の挙動を自分で決めれるならその場で処理すれば良いし、 そこではまだ決められないならさらに上位へreturnなりthrowすれば良い。 http://medaka.5ch.io/test/read.cgi/php/1172205352/106
107: nobodyさん [] 2007/07/14(土) 15:28:38 ID:w3CTKtks OOPってのはアプリケーションをモノに見立てて、それを構成している部品をクラスとして定義する、ってとこまではなんとなく理解した。 例外処理?なにそれうまいの? http://medaka.5ch.io/test/read.cgi/php/1172205352/107
108: nobodyさん [sage] 2007/07/14(土) 18:34:23 ID:??? ダンボールの味がするお http://medaka.5ch.io/test/read.cgi/php/1172205352/108
109: nobodyさん [sage] 2007/07/14(土) 19:32:25 ID:??? おまいらオブジェクト指向に騙されてるよ。ただのデータ型に過ぎない。 http://medaka.5ch.io/test/read.cgi/php/1172205352/109
110: nobodyさん [] 2007/07/14(土) 19:46:31 ID:w3CTKtks 今、習作としてプロフィールスクリプト(っていうのも大袈裟なぐらいショボイやつ)を書いてるんだけど、どうにも悩む。悩む。 とりあえず、 -質問と答え(Entry) --セッタ(SetQuestion,SetAnswer) --ゲッタ(GetQuestion,GetAnswer) -それらのEntryを編集したり、操作したりする(ManageEntry) --POSTされたデータにEntryの値を変更する(EditEntry) -プロフィール自体(Profiel) --質問と答えを出力(ViewProfiel) こんなクラスたちを作ったんだけどなんかおかしい気がしてならない。 とくにManage
Entryのとことか。 ManageEntryでEntryオブジェクトの配列Entriesを作っといてそれをそのクラス内で操作とか?は?え? OOPムズイ、ナキタイ スレ汚しスマソ http://medaka.5ch.io/test/read.cgi/php/1172205352/110
111: nobodyさん [sage] 2007/07/14(土) 21:29:40 ID:??? どんな物を作ってるのかよく分からないけど ぱっと見で確実に言える事は、個別のクラスが多すぎ。 半分くらい継承とメソッドの追加で済みそう。 今のままだと拡張もやり難そう。 プロフィールが"profiel"なのはつっこんだ方が良いのかな。 CakeとかSynfonyみたいな、ライブラリじゃないフレームワークを 使い込んでソース読んだら、どう設計したらよいか一気に分かるよ。 http://medaka.5ch.io/test/read.cgi/php/1172205352/111
112: nobodyさん [] 2007/07/14(土) 22:22:33 ID:w3CTKtks 継承とメソッドの追加ってどうやるんですか><; 正直どうやったらいいのか全くわからん。 プロフィール?え?あ?あはあは。 http://medaka.5ch.io/test/read.cgi/php/1172205352/112
113: nobodyさん [sage] 2007/07/15(日) 00:13:47 ID:??? きめぇ http://medaka.5ch.io/test/read.cgi/php/1172205352/113
114: nobodyさん [sage] 2007/07/15(日) 00:19:07 ID:??? Synfony はつっこんだ方(ry http://medaka.5ch.io/test/read.cgi/php/1172205352/114
115: 1 ◆SWtzLesEmM [age] 2007/07/26(木) 10:21:49 ID:??? >>106 >呼ばれた側はどういうエラーがあったか返す責任があるし、 >呼んだ側は返ってきたエラーをチェックする責任がある。 なるほど〜(・∀・) 呼ぶ側と呼ばれた側のそれぞれでエラーの対処があれば、手堅いですね! 大変参考になりました。 http://medaka.5ch.io/test/read.cgi/php/1172205352/115
116: 1 ◆SWtzLesEmM [age] 2007/07/26(木) 10:29:09 ID:??? 掲示板の続きを作りました。 DBにアクセスする機能をクラスにしてみました。 http://kameleon.s241.xrea.com/dokuwiki/doku.php?id=%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91%E3%81%A7%E4%BD%9C%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%8B 動作サンプル http://kameleon.s241.xrea.com/oop/bbs2/index.php なんか、>>55さんのアドバイスの形になってませんが…orz とりあえず、DBアクセスをクラスの形にできたので一歩前進!!!\(^o^)/ http://m
edaka.5ch.io/test/read.cgi/php/1172205352/116
117: 1 ◆SWtzLesEmM [age] 2007/07/26(木) 10:50:37 ID:??? >>110 おー、ガンバレ〜〜〜☆ >>111 (1) Entryクラス 文章を「書き込む」メソッド、「読む」メソッド、「書き換える(編集)」メソッド、「削除する」メソッドが用意されている。 (2) Entryクラスを継承して、質問用のクラスを用意 =質問のデータだけを操作できる (3) Entryクラスを継承して、答え用のクラスを用意 =答えのデータだけを操作できる というかんじになるんでしょうか? どういうまとまりでクラスにすればいいのか、そこら辺がなんかよ
く分からないんですよねー(ノ∀`) http://medaka.5ch.io/test/read.cgi/php/1172205352/117
118: nobodyさん [sage] 2007/07/26(木) 10:57:58 ID:??? どうしてPDOをry http://medaka.5ch.io/test/read.cgi/php/1172205352/118
119: nobodyさん [sage] 2007/07/27(金) 00:44:20 ID:??? おんにゃにょこの おっぱい ぷぴにぷにだにょ〜 http://medaka.5ch.io/test/read.cgi/php/1172205352/119
120: nobodyさん [sage] 2007/07/28(土) 17:35:02 ID:??? 夏だな http://medaka.5ch.io/test/read.cgi/php/1172205352/120
121: nobodyさん [sage] 2007/07/30(月) 03:51:10 ID:??? function &foo { echo "ほげ" } こういうやつ、「リファレンスを返す」っていうんですか? これはどういう処理をしているんでしょうか? どこかで定義されているfoo()という関数に何かしているんですか? http://medaka.5ch.io/test/read.cgi/php/1172205352/121
122: nobodyさん [sage] 2007/07/31(火) 07:40:25 ID:??? 高機能な参照関数だな http://medaka.5ch.io/test/read.cgi/php/1172205352/122
123: nobodyさん [] 2007/08/01(水) 06:30:28 ID:abLVM2kM >>87 買ってしまっていたよ。Iteratorまで読んだけど、 分かったような分からないような気分。 説明が少ない&下手なのは分かった。 http://medaka.5ch.io/test/read.cgi/php/1172205352/123
124: nobodyさん [sage] 2007/08/01(水) 22:18:22 ID:??? 分からない人に分かるように書いてないという意味では同意。 書いてあることを全て理解していこうとするとこんがらがってくるしね。 まぁいい頭の体操になったけど。 あんなサンプルのためのサンプルではなく、具体的な使い方と利点が書いてあるとOOP素人にも理解しやすかったかもね。 http://medaka.5ch.io/test/read.cgi/php/1172205352/124
125: 522 [] 2007/08/26(日) 13:53:57 ID:QzPwO1Nh >>117 なんかCakePHP使ってみたんだけど質問と答えを操作するクラス作って云々みたいになって結局>>110と同じような感じになっちゃいましたとさ・・・ 「モノ」に書く機能とか読む機能持たせていーの?おしえてえろいひと>< http://medaka.5ch.io/test/read.cgi/php/1172205352/125
126: nobodyさん [sage] 2007/08/26(日) 14:28:30 ID:??? お前が「モノ」をどう捉えるか次第だよ http://medaka.5ch.io/test/read.cgi/php/1172205352/126
127: nobodyさん [sage] 2007/08/28(火) 02:25:00 ID:??? 結局どうやってデータを保持したら、人間にとって分かりやすいか、コンピュータにとってやさしいかってことだろ。 http://medaka.5ch.io/test/read.cgi/php/1172205352/127
128: nobodyさん [sage] 2007/10/03(水) 02:51:35 ID:??? オブジェクト指向は木構造を再現しようとしているだけ。 インスタンスだのオブジェクトだのは枝、茎、葉、花、果実を作るというだけ。 mainでは結果(果実)だけをとりたいから枝やら茎やらは見えなくしとけってことだろ? http://medaka.5ch.io/test/read.cgi/php/1172205352/128
129: nobodyさん [sage] 2007/10/03(水) 16:27:59 ID:??? >>128 まあそんな感じだ http://medaka.5ch.io/test/read.cgi/php/1172205352/129
130: nobodyさん [sage] 2007/10/03(水) 23:45:33 ID:??? まぁ、ファイルの管理方法も木構造だし、インターネットなんていっても網状でなく、 サーバーを経由した木構造になってることから演算機が理解しやすいデータ構造は木構造である。 こういってしまっても過言ではないと思う。 例えば、手続き型は東京の小さなバイク便が地方への配達を頼まれても東京発で請け負うみたいなもの。 それに対して、OODはヤ○ト運輸が東京で頼まれた配達を一旦、地方の配送センターに送るようなもの。 配達する対象が少なければ、バイク便に頼んだ方が早いかもし
れないけど、数が多くなるとヤ○ト運輸。 http://medaka.5ch.io/test/read.cgi/php/1172205352/130
131: nobodyさん [sage] 2007/10/05(金) 01:16:19 ID:??? うん、ここ数日でオブジェクト思考勉強してて分かったこと。 ちなみに128==130==漏れです。 ・オブジェクト指向は木構造 ・目的は種の存続、繁栄 ・ここでのフローは一つずつだが、間にどれだけの枝が挟まるかは設計次第 クラス設計 種(プリプロセッサ)から芽が出る(この時点では手続き型でも、OODでもない) 根クラス…main関数、もしくはmainクラスの設計、遺伝子(設計の違いで木になるかどうかが決定) 幹クラス…根から養分を吸い上げる(大まかな工程の分類) オブジェクト生成
枝クラス…効率的に日光を取得できるよう枝を伸ばす(コンストラクタ) 葉クラス…光合成を行い、自己生産を行う(メソッド) 葉緑素クラス…目立たない頑張り屋さん(ライブラリ) 花クラス…実となるか枯れ落ちるか(オブジェクト) 実行結果 果実クラス…土に還り、新たな種となりました(プロジェクト成功) http://medaka.5ch.io/test/read.cgi/php/1172205352/131
132: nobodyさん [sage] 2007/10/05(金) 20:07:34 ID:??? なんかすぐ動いて実用的で簡単なサンプルください http://medaka.5ch.io/test/read.cgi/php/1172205352/132
133: nobodyさん [sage] 2007/10/05(金) 20:35:14 ID:??? package hoge; my $class=shift; $ENV{'TZ'} = "JST-9"; my ($sec,$min,$hour,$mday,$mon,$year) = gmtime(time + 9*60*60); my $obj={'sec'->$sec, 'min'->$min, 'hour'->$hour, 'mday'->$mday, 'mon'->$mon, 'year'->$year}; return bless $obj, $class; 1; 適当に書いてみた。あとは時間をゴニョゴニョするだけ、普通に作ったほうがメリット大きい気もするがキニシナイ!! ヨウカソマソ参上===[・∀・]ノシ http://medaka.5ch.io/test/read.cgi/php/1172205352/133
134: 131 [sage] 2007/10/05(金) 23:40:29 ID:??? 実際に設計して、作ってみるとオブジェクト指向の本質は"同じことは出来るだけ"しない。 この論理で動いてるような気がしてきた。何でもかんでもオブジェクトにするのではなく、 運搬の頻度が激しいデータ、プログラム中で何度も使用するデータをオブジェクトにする。 そんな感じで合ってるのかな?あと、変数の受け渡しは原則、参照で行うみたいな。 http://medaka.5ch.io/test/read.cgi/php/1172205352/134
135: 131 [sage] 2007/10/06(土) 13:37:33 ID:??? 何となく掴めてきた。もっかい木構造で表してみる。 根: プリプロセッサ、送信データ(実行役) 幹: main(効率よく栄養=処理を振り分ける) [クラス]・・・大規模にもなるとこれが幾重にもネストされる。 枝: コンストラクタ(葉に栄養=処理を割り振る、葉で生成された養分=オブジェクトを幹に伝える) 葉: メソッド(オブジェクト=養分を生成する) 花: オブジェクト(実行結果=果実の手前) 果実: 実行結果(主の繁栄=実行結果が真) ちなみに実行結果が偽となるのは幹から花に至
るまででエラーが起こった場合。 漏れルール mainは基本的にクラスに指示を与える以外しない。 コンストラクタでオブジェクトの用意を行う。 メンバメソッドはオブジェクトの加工を行う。 コンストラクタからオブジェクトを返す。 mainは次に必要なオブジェクトを作るクラスへ処理を回す。 http://medaka.5ch.io/test/read.cgi/php/1172205352/135
136: nobodyさん [sage] 2007/10/07(日) 12:52:54 ID:??? 日曜日1GET! 始めまして まだPHP3ヶ月目ですが早くもオブジェクト指向で挫折>< ちなみに ・「基礎PHP」 ・「PHP5であなたもウェブアプリが作れる!」 ・「速効!図解プログラミングPHP + MySQL」 を参考書にしています。 分かりやすかったのは基礎PHPです。 掲示版からスケジュール管理に移るところで Smarty関連を追加するため承継とか出てきてなるほどと思いました。 ただソース理解しても自分では何もできないんですけどねw http://medaka.5ch.io/test/read.cgi/php/11
72205352/136
137: nobodyさん [sage] 2007/10/07(日) 19:12:30 ID:??? 掲示板の改良はどうします? http://medaka.5ch.io/test/read.cgi/php/1172205352/137
138: nobodyさん [sage] 2007/10/07(日) 21:04:45 ID:??? 丸投げします http://medaka.5ch.io/test/read.cgi/php/1172205352/138
139: nobodyさん [sage] 2007/10/07(日) 21:09:36 ID:??? OOPで作ったやつの ソースとかうpったら なんか色々言ってもらえるんかな? このスレでは http://medaka.5ch.io/test/read.cgi/php/1172205352/139
140: nobodyさん [sage] 2007/10/07(日) 21:46:16 ID:??? >>139 自分も変なソースですけど味見してもらえます? 恥ずかしいです>< http://medaka.5ch.io/test/read.cgi/php/1172205352/140
141: nobodyさん [sage] 2007/10/08(月) 09:30:37 ID:??? >>133 これをどうやって使えばいいんですか http://medaka.5ch.io/test/read.cgi/php/1172205352/141
142: nobodyさん [sage] 2007/10/08(月) 19:27:30 ID:??? なかなか面白いブログを発見しました。 ぜひ皆さんに見てもらって意見聞きたいな^^ http://blogs.itmedia.co.jp/tamaki/2006/06/post_57ab.html http://medaka.5ch.io/test/read.cgi/php/1172205352/142
143: nobodyさん [sage] 2007/10/09(火) 22:34:59 ID:??? MVCのコントローラについてどこまでクラスにするか迷っています・・・ http://medaka.5ch.io/test/read.cgi/php/1172205352/143
144: nobodyさん [sage] 2007/10/10(水) 16:06:50 ID:??? ハァ? http://medaka.5ch.io/test/read.cgi/php/1172205352/144
145: nobodyさん [sage] 2007/10/12(金) 03:46:51 ID:??? 意味わかんね どこまでクラス? http://medaka.5ch.io/test/read.cgi/php/1172205352/145
146: nobodyさん [sage] 2007/11/12(月) 13:32:18 ID:??? まずはモデルでしょ http://medaka.5ch.io/test/read.cgi/php/1172205352/146
147: nobodyさん [] 2007/12/13(木) 08:37:25 ID:Q/a8rTy0 SPLって使ってる人実在するの? http://jp2.php.net/manual/ja/ref.spl.php http://medaka.5ch.io/test/read.cgi/php/1172205352/147
148: nobodyさん [sage] 2007/12/14(金) 02:09:52 ID:??? 例外はよく使う http://medaka.5ch.io/test/read.cgi/php/1172205352/148
149: nobodyさん [sage] 2007/12/19(水) 01:29:29 ID:??? >>147 読み込んでも八割がた無駄なので使わない http://medaka.5ch.io/test/read.cgi/php/1172205352/149
150: nobodyさん [age] 2007/12/23(日) 12:51:26 ID:??? かしゆか誕生日おめでとう! http://www.tkma.co.jp/tjc/j_pop/perfume/profile.html http://medaka.5ch.io/test/read.cgi/php/1172205352/150
151: nobodyさん [sage] 2007/12/24(月) 10:55:41 ID:??? >>149 つりですか? http://medaka.5ch.io/test/read.cgi/php/1172205352/151
152: nobodyさん [] 2007/12/29(土) 00:05:37 ID:4ZpocZiG MVCのCってどうやって書けばいいのかわからんぜ。 http://medaka.5ch.io/test/read.cgi/php/1172205352/152
153: nobodyさん [sage] 2007/12/29(土) 02:00:56 ID:??? その概念中でコントローラーが理解出来ないってやつ初めてみた とりあえずView上で必要な操作を徹底的にControllerに切り離すが良い。 そしてModelからデータを引き出して必要があれば書き込み更新してやりなさい。 http://medaka.5ch.io/test/read.cgi/php/1172205352/153
154: nobodyさん [sage] 2007/12/31(月) 19:44:35 ID:??? ユーザークラスで新規登録処理をして、そのときにユーザークラスの中で プロフィールクラスのオブジェクトを作ってプロフィールの登録もする これってしいて言えば何パターン? http://medaka.5ch.io/test/read.cgi/php/1172205352/154
155: nobodyさん [sage] 2007/12/31(月) 19:47:57 ID:??? ワンパターン http://medaka.5ch.io/test/read.cgi/php/1172205352/155
156: nobodyさん [sage] 2008/01/01(火) 00:16:32 ID:??? パターンというかコンポジションでそ http://medaka.5ch.io/test/read.cgi/php/1172205352/156
157: nobodyさん [age] 2008/01/29(火) 11:18:04 ID:??? 模範解答は無いけれど、以下の相互変換を行うクラス(ChStr)をみんなで 作ってみるという案はどうかな? そして、これが出来たら、ログファイルに保存などの機能をつけ、 wikiみたいに編集が出来る機能を追加していくという感じに。 <編集> ------------------------------------------------------------- = 2ch '''2ch'''とは、総合掲示板のことである。 link:[http://www.2ch.net] ------------------------------------------------------------- <出力> -------------------------
------------------------------------ <b><font size="+1">2ch</font></b><br> <b>2ch</b>とは、総合掲示板のことである。<br> link:<a href="http://www.2ch.net">http://www.2ch.net</a><br> ------------------------------------------------------------- http://medaka.5ch.io/test/read.cgi/php/1172205352/157
158: 1 ◆SWtzLesEmM [age] 2008/01/29(火) 11:29:32 ID:??? >>157 OOPの勉強というよりも、どちらかというと正規表現の勉強になるでしょうか? wikiのパーサーつくるなら、既存のwikiスクリプトや、PEARのText_Wikiが参考になるかもしれませんね。 http://www.phppro.jp/news/172 PEAR::Text_Wiki 1.2.0RC1 リリース 2006年10月11日 http://labs.cybozu.co.jp/blog/tsuruoka/anubis/blog_show/18 Text_PukiWikiリリース http://medaka.5ch.io/test/read.cgi/php/1172205352/158
159: nobodyさん [age] 2008/01/29(火) 11:43:55 ID:??? >>158 C++のOOPの勉強として、文字列を簡単に扱うことが出来るクラスを 自作してみるという演習があったので、それをPHPでもやってみようかなと 思ったものです。 Cでは、文字列を結合したり、splitしたりするのが結構大変なので、 この演習が役に立ったなと思っていたのです。 PHPの場合は、関数を使えばそれで終わってしまうので、もう少し ひねりを入れたものを考えて見ました。 正規表現を練習するというよりも、正規表現とhtmlの相互変換をする クラスがあると、プログラムをする
際、便利だなという事が実感 出来るのでは?という意味合いです。 (例)正規表現を格納し、html出力する過程。 $text に textarea タグの文字列を格納する。 $str = new ChStr($text); echo "<html><body>"; $str->Write_html(); echo "</body></html>"; ほら、このクラスがあるとレイアウトを変えたりが、やり易い上に 再利用性が高いでしょ?みたいな。 http://medaka.5ch.io/test/read.cgi/php/1172205352/159
160: 1 ◆SWtzLesEmM [age] 2008/01/29(火) 11:47:24 ID:??? OOPの参考になる解説がありました。 PHPのclass、オブジェクト指向プログラミングに関する質問です。 http://q.hatena.ne.jp/1187962431 ↑ 2番の回答者の解説が分かりやすいと思いました。 6番の回答者のサンプルコードも参考になりましたが、これは「インターフェース」の利用方法ではありませんね。>< インターフェイス http://www.phppro.jp/phpmanual/php/language.oop5.interfaces.html あるクラスが実装する必要があるメソッドの種類を、これらのメソッドの実体を定義すること
なく、指定するコードを作成できるようになります。 インターフェイスはキーワードinterfaceにより定義され、通常のクラスと同様に定義することができますが、メソッドの実装は全く定義されません。 http://medaka.5ch.io/test/read.cgi/php/1172205352/160
161: 1 ◆SWtzLesEmM [age] 2008/01/29(火) 12:00:16 ID:??? >>159 なるほど!(・∀・) 文字列を扱う処理は、いろんなところで出番がありそうですね! wikiの文法(表記方法)が使える掲示板とか作れそう^^ http://medaka.5ch.io/test/read.cgi/php/1172205352/161
162: nobodyさん [age] 2008/01/29(火) 12:04:23 ID:??? ChStr クラス の設計はこんな感じかな。 メンバ private $m_str; // 正規表現文字列を格納する。 コンストラクタ ChStr($str) // 正規表現の文字列を受け取る。 private メソッド ch_to_html() // 正規表現をhtmlに変換する。 public メソッド Write_html() // 格納している文字をhtmlで出力する。 Write_text() // 格納している文字を正規表現で出力する。 --------------------------------------------------- 本当は、ログファイルへの保存や読み取りなどを機能として 考え、そのあ
たりまで含めたクラスの設計をした方が いいんだろうけれど、まずは簡潔にする方向でいきます。 で、後々拡張の方向で。 http://medaka.5ch.io/test/read.cgi/php/1172205352/162
163: 1 ◆SWtzLesEmM [age] 2008/01/29(火) 12:04:44 ID:??? PHPのインターフェースは、Javaとかのインターフェースとはちょっと違っているみたいですねー。>< (…使ったことないので実感がありませんが^^) PHPでは実装済みのinterfaceを多重に実装できない http://blog.xole.net/article.php?id=589 http://blog.xole.net/article.php?id=597 http://medaka.5ch.io/test/read.cgi/php/1172205352/163
164: 1 ◆SWtzLesEmM [age] 2008/01/29(火) 12:25:09 ID:??? >>162 こんなかんじのプログラムと似ているかもしれませんねー。 60行で作るPHP用テンプレートエンジン http://anond.hatelabo.jp/20071030034313 >テンプレートの中身を置換する >function convert_string($s) ↑置き換えるパターンに応じて、別々のメソッドを用意したら便利でしょうか? = 文字サイズ変更、''' 強調、link: リンクとかの記法の置換を担当するprivateメソッド http://medaka.5ch.io/test/read.cgi/php/1172205352/164
165: 1 ◆SWtzLesEmM [age] 2008/01/29(火) 12:34:03 ID:??? OOPの参考になる解説がありました。 関数、オブジェクト、クロージャ http://d.hatena.ne.jp/brazil/20060131/1138692196 >オブジェクトは、データに処理がくっついたものです。 >array.map()のように、後に後に処理を追加していく書き方は、順にコードを追えるため読みやすく、また書きやすいです。 クロージャっていう仕組みは、PHPにはないですね?>< 大は小を兼ねる…クロージャの代わりにオブジェクトが使えればとりあえずOKかな?(・∀・) http://medaka.5ch.io/test/re
ad.cgi/php/1172205352/165
166: nobodyさん [sage] 2008/01/29(火) 13:15:31 ID:??? >>161 >wikiの文法(表記方法)が使える掲示板とか作れそう^^ PEARのText_Wiki使えばよくね? http://medaka.5ch.io/test/read.cgi/php/1172205352/166
167: nobodyさん [age] 2008/01/29(火) 13:18:38 ID:??? >>164 > 置き換えるパターンに応じて、別々のメソッドを用意したら便利でしょうか? 本来ならば、そうなるでしょうね。それらはすべてprivateで作っておいて、 外部には、一つのインターフェースのみ(この例の場合はWrite_html()がそれに該当) 公開となるでしょう。 記号ごとに別々にメソッドを定義しておけば、記号とhtmlの関係が変わる時は、 どのメソッドを触ればよいかが分かるし、それを変更したことで、 他のメソッドには影響は無かったりします。 (これが構造化プログラム
の場合は、目的のソースと目的ではないソースを 見極めるところから始まります。) ------------------------------------------------------------------------- この ChStr に汎用性を持たせる場合は、Write_html()というよりも、 Get_html()とし、html文字列を return する事になるでしょう。 そうすると、別なプログラムで、「出力結果をファイルに保存する」という 使い方も出来ます。しかし、今回は初回なので、Write_html()とし、 メソッド内部で echo 使うことにします。 http://medaka.5ch.io/test/read.cgi/php/1172205352/167
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 727 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.030s