のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,691,565人
昨日:no data人
今日:
最近の注目
人気の最安値情報

私的良スレ書庫

不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

元スレPHPでOOP

php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニュー
スレッド評価: スレッド評価について
みんなの評価 :
タグ : - cake + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
レスフィルター : (試験中)
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
51 : 1 ◆SWtzL - 2007/02/27(火) 15:59:41 ID:???.net (+5,-30,-180)
それでは、次行ってみよう!
>>22 (2)次にOOPで同じ掲示板を作ってみる

>>34
PHPコードとHTML表示を一緒にしてありますが、OOPではテンプレートシステムを使って、PHPコードとHTML表示部分を分離して、MVCにしてみたいです。

どういうクラスを作ればいいのか良く分かりません><

(1)コントローラー(+アクション)→input、list、message
(2)モデル→データベース接続処理も1つのクラスにするのでしょうか?
(4)ビュー→テンプレートシステムへの出力
というかんじで3個のクラスが必要でしょうか?
それぞれのクラスに必要なプロパティとメソッドを何にするか?
クラスを考えて、UMLでクラス図を作ってみたいです。
52 : nobodyさん - 2007/02/27(火) 22:54:58 ID:???.net (+57,+29,-16)
がんばってるなあ。
おれもがんばろう。
53 : nobodyさん - 2007/02/28(水) 03:12:15 ID:???.net (+63,+28,-32)
わかりにくいからWebサイトにまとめてくれ。PHP使いなんだし
54 : 1 ◆SWtzL - 2007/02/28(水) 20:49:38 ID:???.net (+40,+4,-13)
>>53
まとめサイトを設置しました。
http://kameleon.s241.xrea.com/dokuwiki/doku.php
55 : nobodyさん - 2007/02/28(水) 22:48:34 ID:???.net (+14,-29,-48)
最終的にMVCな構成を目標に
少しずつリファクタリングしていけばよいと思う

とりあえずDBアクセスを一箇所にまとめるモデルを作ってみるといいんじゃない
・全件取得
・1件取得
・1件追加
できるMessageクラスとかを作ってそこにDBアクセス(SQL)をまとめれ
56 : nobodyさん - 2007/03/03(土) 13:53:29 ID:Ej/v+KpC.net (+0,+14,-2)
期待上げ
57 : nobodyさん - 2007/03/04(日) 04:17:32 ID:xhaosu8B.net (-11,+3,-2)
期待
58 : nobodyさん - 2007/03/11(日) 11:30:29 ID:???.net (+62,+29,-60)
OOP勉強したいなら、実力不足のやつが書いたガラクタ掲示板スクリプトを
読むより、有名なオープンソースのスクリプトを読めばいいじゃん。
そもそも>>1の意味不明な独善なんかに付き合わなくてもOOPに関する情報
はいくらでも手にはいるし。
59 : nobodyさん - 2007/03/11(日) 23:56:02 ID:???.net (+71,+29,-36)
ど素人に肥大したコードを読ませて理解できると思ってる思考回路がカコイイ!
60 : nobodyさん - 2007/03/12(月) 08:27:35 ID:cm9vlrfS.net (+38,+29,-24)
>>59
ど素人はみんな、自分みたいな学習意欲も向上心もない人間だと思ってる
思考回路がカコイイ!
61 : nobodyさん - 2007/03/12(月) 09:16:45 ID:???.net (+34,+6,-1)
>>60 思考回路がカコイイ!
62 : nobodyさん - 2007/03/12(月) 09:57:59 ID:???.net (+67,+29,+0)
>>59-61
全員カコワルイ!! 俺はカコイイ!!
63 : nobodyさん - 2007/03/12(月) 13:37:56 ID:???.net (+57,+29,+0)
>>1-62
全員カコイイ!!
俺はカコワルイ!!
64 : nobodyさん - 2007/03/12(月) 14:07:03 ID:???.net (+58,+30,-35)
で、結局荒れ放題になり>>1の独善は無事終了したのだった。
ちゃんちゃん。
65 : 1 ◆SWtzL - 2007/05/12(土) 03:12:14 ID:???.net (+8,-30,-141)
>>55
DBにアクセスするためのクラスを作ろうと思って、とりあえずdb.phpをクラスの形に変えてみようと試みました。
だけど、コンストラクタでエラーが出てストップ!
Fatal error: Cannot access empty property in /…/test.php on line 18

なんでエラーになるのか?よく分からなくて、PHP5のコンストラクタについて調査していたら、サンプルになりそうなDBクラスの解説記事がありました。
http://www.bnote.net/php/php/09_db_class.shtml
↑これをソックリ真似すれば、DBクラスは何とかなるかな?

ところで、このbnoteというサイトのPHP解説記事には、掲示板を作ってみるサンプルがあり、参考になりそうです。
http://www.bnote.net/php/php_idx.shtml
>PHPでフォーラムを作ろう!
66 : nobodyさん - 2007/05/12(土) 16:09:18 ID:???.net (+63,+30,-53)
中傷されている>>1だが、
普通に>>1のおかげでだいぶいい情報が手に入った。
曖昧だったクラスがなんとか分かりそうだよ。
ありがとー
PHPでわからない人は情報が足りないのかもな。
似てるJAVAで本格的なものを見てみると分かるのかも。

昔、歴史で年表同士のつながりが薄くて分かりづらかったように、
もっと詳しく高校の歴史くらいのをみれば分かりやすい。
67 : nobodyさん - 2007/05/12(土) 23:32:04 ID:s118dfiw.net (+24,+29,-35)
なんていうか「こういうときにはこういう設計をします」っていう
具体的な情報がほしいよな
俺は車なんかプログラミングしないっての
68 : nobodyさん - 2007/05/14(月) 00:46:15 ID:4QCW9ZwU.net (+30,+30,-210)
最近ちょっとだけ解ってきた。

なぜOOPなのかと言えば
再利用とメンテナンス、拡張がやりやすい(やりやすく作ることが出来る)ということがすごくて、
そのためにカプセル化とポリモーフィズムがあって
ポリモーフィズムを実現(保証)するために継承や、インターフェイスや抽象クラスがあるって感じなのかな?

PHPによるデザインパターンは読んでみても良いと思う。
あと、ゼンドフレームワーク勉強用にZFで動くブログソフトみたいのあるから、それの仕組みと、ZFのソース(全部はきついけど関係あるところだけ)
を見てみると、結構勉強になると思う。
http://www.itmedia.co.jp/enterprise/articles/0702/28/news028.html
http://www.itmedia.co.jp/enterprise/articles/0703/05/news013.html
http://www.itmedia.co.jp/enterprise/articles/0703/08/news018.html
記事がちょっと古いから最新バージョンと微妙に違うけど。

まあ、このフレームワークが良いか悪いかは別にして(まだベータだし)
OOPバリバリなので、勉強になること間違いなし!
69 : nobodyさん - 2007/05/15(火) 15:55:34 ID:???.net (+67,+29,-8)
しかし PHP関連の本でOOPをわかりやすく書いてあるのが



「ない!」 お勧め教えて
70 : nobodyさん - 2007/05/15(火) 16:01:33 ID:???.net (+67,+29,-81)
本なんか読むよりPEARやフレームワークのソース読んで
勉強しながら自分なりに書いていけ、金かからないしだしそれが一番の近道
気が付いたらOOPなんて空気のように有って当たり前になるもんだから
71 : nobodyさん - 2007/05/15(火) 16:06:06 ID:???.net (+1,-29,-137)
わかりにくいの例として

スコープ演算子(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の章になると意味不明
72 : nobodyさん - 2007/05/15(火) 16:08:18 ID:???.net (+66,+29,-11)
書きながら次第にむかつき度が増加して誤字だらけになった(怒

>>70
それ疲れる
73 : nobodyさん - 2007/05/15(火) 17:01:49 ID:???.net (+67,+29,-30)
>>69
独習PHPのクラスらへんの説明は中々分かりやすいよ。
作者があまりいいとはいえんが、ファーストステップにはいい感じ。
74 : nobodyさん - 2007/05/22(火) 15:14:54 ID:???.net (+58,+29,-15)
同じ事を色々な言葉で表現するから迷うずら
PHPの本読むよりJAVAの本読んだほうが理解できる罠。
75 : nobodyさん - 2007/05/28(月) 14:46:00 ID:???.net (+57,+29,-30)
自分が作るだけなら手続き型でいいけど
人の作ったライブラリ使いたいから
最低限、何が書いてあって何をしているのか読めるようになりたい
76 : nobodyさん - 2007/05/29(火) 05:34:16 ID:???.net (+57,+29,-19)
答えが出てるじゃないか。その使いたいライブラリのコードを読め
78 : nobodyさん - 2007/06/05(火) 19:15:58 ID:???.net (-2,-20,+0)
XOOPS
79 : nobodyさん - 2007/06/11(月) 22:06:39 ID:2dWIuVC4.net (+34,+29,-30)
>>65に誰もつっこまないのかよ!!

DBアクセスの為のクラス書くのかw
おそらくPHPインストール時に君のHDDの中にすでに入ってる訳だが…
しかもあらゆるDBに同じ書式でアクセス出来るやつが…
80 : nobodyさん - 2007/06/11(月) 23:45:37 ID:???.net (+53,+25,-2)
>>79
なんてやつ?
81 : nobodyさん - 2007/06/12(火) 00:15:06 ID:???.net (+55,+27,-31)
PEARのソースは読まない方が身のため
82 : nobodyさん - 2007/06/12(火) 06:55:41 ID:e4tfCBN5.net (+23,+27,-32)
79は勘違いしてるが、彼がいいたいのはPearのDBクラスのことだろう
83 : nobodyさん - 2007/06/12(火) 09:31:07 ID:???.net (-6,-29,-9)
82が勘違いだろ。
単にPDOだろ
84 : 1 ◆SWtzL - 2007/06/12(火) 10:24:12 ID:???.net (+10,-30,-191)
>>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 では動作しません。
85 : nobodyさん - 2007/06/12(火) 10:56:05 ID:???.net (-6,-29,-5)
mysqliとどっちがいい?
86 : nobodyさん - 2007/06/12(火) 17:53:32 ID:???.net (+58,+29,-16)
ふとおもったんだが、>>1はできるんじゃないのか。
87 : nobodyさん - 2007/06/17(日) 01:20:06 ID:???.net (+67,+30,-165)
被害者増やさないように書いておく。
「PHPデザインパターン入門」は買うな。

最近買った中で最低レベルの悪書。

どっかの英語ページを機械翻訳したようなトンチンカンな用語説明にまじって
何故かApacheとPHPのインストール方法だけが丁寧な日本語で書かれている。
あとはデザインパターン図が羅列してあるだけ。解説ほぼ無し。
3流大学生のコピペ論文を彷彿とさせる。
こんなの真剣に呼んでも絶対わかるようにはならない。

OOP用語の説明は何故かちゃんとしてないのに
php.iniにページさかれてるけど
網羅して無くて中途半端でページ稼ぎとしか思えない。

中身薄くて有名なヤマダヨウカン本の方がマシに感じるレベル。
88 : nobodyさん - 2007/06/17(日) 01:28:20 ID:???.net (+63,+30,-141)
なんか良く読むと、この本は解説の日本語が
オブジェクト指向で書かれてる気がした。

多分最初にパターン名を記載した時点で、作者の頭の中では
記載されてるページを呼び出してるんだろうと思えてきた。

解説するための日本語はプロシージャ指向で書いてくれと
小一時間問い詰めたい。

この本理解するには色んな本を買って、全部理解した後じゃないと
読めない。意味ねえじゃん。
89 : nobodyさん - 2007/06/17(日) 01:54:28 ID:???.net (+68,+29,-35)
軽いフレームワークいじって使うのが一番いいオブジェクト指向の勉強だよ
90 : nobodyさん - 2007/06/17(日) 14:22:50 ID:???.net (+57,+29,-28)
ウェブアプリにオブジェクト指向なんていらないよ。どうせ文字列を加工してデータベースのテーブルのカラムに並べるだけなんだから。
91 : nobodyさん - 2007/06/17(日) 18:51:52 ID:???.net (+52,+29,-2)
じゃどういうときに必須なんよ
92 : nobodyさん - 2007/06/24(日) 17:09:42 ID:???.net (+57,+29,-23)
オブジェクト指向と言う言葉にまどわされず、
クラスの勉強をすればいいんだよ。 

単に、呼び出してるだけだから。 
93 : nobodyさん - 2007/06/24(日) 19:32:38 ID:???.net (+64,+29,-66)
PEARをサンプルみながら見よう見まねでインスタンス作って
なんだかんだで実際動いてるんだけど何してるかイマイチ理解出来てないんだよね
functionの中でインスタンス作るとその外側ではやっぱアクセスできないのかな
PEARDBのインスタンスがあっちゃこっちゃに散らばっちゃって困る
94 : nobodyさん - 2007/06/25(月) 12:32:57 ID:???.net (+7,-24,-13)
>>93
プロパティに入れれ
95 : 1 ◆SWtzL - 2007/07/06(金) 14:33:24 ID:???.net (+12,-29,-107)
>>68
>拡張がやりやすい(やりやすく作ることが出来る)
そうみたいですね。
http://www.amazon.co.jp/dp/4822281957/
「オブジェクト指向でなぜつくるのか」
という本にも、クラスを使うメリットが同じように説明されていました。(・∀・)

>>74
Javaの本だと
http://www.amazon.co.jp/dp/4797331828/
「やさしいJava」をすすめられました。

>>86
(σ・Д・)σプログラミング初心者ですΣ(゚Д゚*)=3

>>89
Zend Frameworkの正式版が出ましたね☆
http://framework.zend.com/manual/ja/
シンプルなフレームワークを検索したら、CodeIgniterというのがありました。
http://userguide.cilab.info/
96 : nobodyさん - 2007/07/08(日) 18:20:46 ID:XFKJF1H9.net (+34,+29,-28)
最近このスレが怖くて見れん俺ガイル
なんでそんな成長早いんだよ・・・おかしいだろ・・・orz
99 : nobodyさん - 2007/07/11(水) 10:41:20 ID:???.net (+51,+28,-4)
例外投げるようにすれば?
100 : 1 ◆SWtzL - 2007/07/11(水) 12:59:29 ID:???.net (+12,-30,+0)
例外処理
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{ }で処理するという流れになる。

↑とのことですが、汎用性のある関数やメソッドにしたい場合、エラーが発生したときの処理を書く場所は、関数やメソッドを使う方(呼び出す側)にすることもあるでしょうか?
=戻り値をチェックするというのは、古いやり方なんでしょうか?
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : - cake + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について