私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレPHPでOOP
php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
それでは、次行ってみよう!
>>22 (2)次にOOPで同じ掲示板を作ってみる
>>34
PHPコードとHTML表示を一緒にしてありますが、OOPではテンプレートシステムを使って、PHPコードとHTML表示部分を分離して、MVCにしてみたいです。
どういうクラスを作ればいいのか良く分かりません><
(1)コントローラー(+アクション)→input、list、message
(2)モデル→データベース接続処理も1つのクラスにするのでしょうか?
(4)ビュー→テンプレートシステムへの出力
というかんじで3個のクラスが必要でしょうか?
それぞれのクラスに必要なプロパティとメソッドを何にするか?
クラスを考えて、UMLでクラス図を作ってみたいです。
>>22 (2)次にOOPで同じ掲示板を作ってみる
>>34
PHPコードとHTML表示を一緒にしてありますが、OOPではテンプレートシステムを使って、PHPコードとHTML表示部分を分離して、MVCにしてみたいです。
どういうクラスを作ればいいのか良く分かりません><
(1)コントローラー(+アクション)→input、list、message
(2)モデル→データベース接続処理も1つのクラスにするのでしょうか?
(4)ビュー→テンプレートシステムへの出力
というかんじで3個のクラスが必要でしょうか?
それぞれのクラスに必要なプロパティとメソッドを何にするか?
クラスを考えて、UMLでクラス図を作ってみたいです。
最終的にMVCな構成を目標に
少しずつリファクタリングしていけばよいと思う
とりあえずDBアクセスを一箇所にまとめるモデルを作ってみるといいんじゃない
・全件取得
・1件取得
・1件追加
できるMessageクラスとかを作ってそこにDBアクセス(SQL)をまとめれ
少しずつリファクタリングしていけばよいと思う
とりあえずDBアクセスを一箇所にまとめるモデルを作ってみるといいんじゃない
・全件取得
・1件取得
・1件追加
できるMessageクラスとかを作ってそこにDBアクセス(SQL)をまとめれ
OOP勉強したいなら、実力不足のやつが書いたガラクタ掲示板スクリプトを
読むより、有名なオープンソースのスクリプトを読めばいいじゃん。
そもそも>>1の意味不明な独善なんかに付き合わなくてもOOPに関する情報
はいくらでも手にはいるし。
読むより、有名なオープンソースのスクリプトを読めばいいじゃん。
そもそも>>1の意味不明な独善なんかに付き合わなくてもOOPに関する情報
はいくらでも手にはいるし。
ど素人に肥大したコードを読ませて理解できると思ってる思考回路がカコイイ!
>>60 思考回路がカコイイ!
>>59-61
全員カコワルイ!! 俺はカコイイ!!
全員カコワルイ!! 俺はカコイイ!!
で、結局荒れ放題になり>>1の独善は無事終了したのだった。
ちゃんちゃん。
ちゃんちゃん。
>>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でフォーラムを作ろう!
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でフォーラムを作ろう!
なんていうか「こういうときにはこういう設計をします」っていう
具体的な情報がほしいよな
俺は車なんかプログラミングしないっての
具体的な情報がほしいよな
俺は車なんかプログラミングしないっての
最近ちょっとだけ解ってきた。
なぜ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バリバリなので、勉強になること間違いなし!
なぜ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バリバリなので、勉強になること間違いなし!
しかし PHP関連の本でOOPをわかりやすく書いてあるのが
「ない!」 お勧め教えて
「ない!」 お勧め教えて
本なんか読むよりPEARやフレームワークのソース読んで
勉強しながら自分なりに書いていけ、金かからないしだしそれが一番の近道
気が付いたらOOPなんて空気のように有って当たり前になるもんだから
勉強しながら自分なりに書いていけ、金かからないしだしそれが一番の近道
気が付いたらOOPなんて空気のように有って当たり前になるもんだから
わかりにくいの例として
スコープ演算子(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の章になると意味不明
スコープ演算子(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の章になると意味不明
同じ事を色々な言葉で表現するから迷うずら
PHPの本読むよりJAVAの本読んだほうが理解できる罠。
PHPの本読むよりJAVAの本読んだほうが理解できる罠。
自分が作るだけなら手続き型でいいけど
人の作ったライブラリ使いたいから
最低限、何が書いてあって何をしているのか読めるようになりたい
人の作ったライブラリ使いたいから
最低限、何が書いてあって何をしているのか読めるようになりたい
>>79
なんてやつ?
なんてやつ?
79は勘違いしてるが、彼がいいたいのはPearのDBクラスのことだろう
>>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 では動作しません。
情報提供どうもありがとうございます。
独習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 では動作しません。
ふとおもったんだが、>>1はできるんじゃないのか。
被害者増やさないように書いておく。
「PHPデザインパターン入門」は買うな。
最近買った中で最低レベルの悪書。
どっかの英語ページを機械翻訳したようなトンチンカンな用語説明にまじって
何故かApacheとPHPのインストール方法だけが丁寧な日本語で書かれている。
あとはデザインパターン図が羅列してあるだけ。解説ほぼ無し。
3流大学生のコピペ論文を彷彿とさせる。
こんなの真剣に呼んでも絶対わかるようにはならない。
OOP用語の説明は何故かちゃんとしてないのに
php.iniにページさかれてるけど
網羅して無くて中途半端でページ稼ぎとしか思えない。
中身薄くて有名なヤマダヨウカン本の方がマシに感じるレベル。
「PHPデザインパターン入門」は買うな。
最近買った中で最低レベルの悪書。
どっかの英語ページを機械翻訳したようなトンチンカンな用語説明にまじって
何故かApacheとPHPのインストール方法だけが丁寧な日本語で書かれている。
あとはデザインパターン図が羅列してあるだけ。解説ほぼ無し。
3流大学生のコピペ論文を彷彿とさせる。
こんなの真剣に呼んでも絶対わかるようにはならない。
OOP用語の説明は何故かちゃんとしてないのに
php.iniにページさかれてるけど
網羅して無くて中途半端でページ稼ぎとしか思えない。
中身薄くて有名なヤマダヨウカン本の方がマシに感じるレベル。
なんか良く読むと、この本は解説の日本語が
オブジェクト指向で書かれてる気がした。
多分最初にパターン名を記載した時点で、作者の頭の中では
記載されてるページを呼び出してるんだろうと思えてきた。
解説するための日本語はプロシージャ指向で書いてくれと
小一時間問い詰めたい。
この本理解するには色んな本を買って、全部理解した後じゃないと
読めない。意味ねえじゃん。
オブジェクト指向で書かれてる気がした。
多分最初にパターン名を記載した時点で、作者の頭の中では
記載されてるページを呼び出してるんだろうと思えてきた。
解説するための日本語はプロシージャ指向で書いてくれと
小一時間問い詰めたい。
この本理解するには色んな本を買って、全部理解した後じゃないと
読めない。意味ねえじゃん。
ウェブアプリにオブジェクト指向なんていらないよ。どうせ文字列を加工してデータベースのテーブルのカラムに並べるだけなんだから。
オブジェクト指向と言う言葉にまどわされず、
クラスの勉強をすればいいんだよ。
単に、呼び出してるだけだから。
クラスの勉強をすればいいんだよ。
単に、呼び出してるだけだから。
PEARをサンプルみながら見よう見まねでインスタンス作って
なんだかんだで実際動いてるんだけど何してるかイマイチ理解出来てないんだよね
functionの中でインスタンス作るとその外側ではやっぱアクセスできないのかな
PEARDBのインスタンスがあっちゃこっちゃに散らばっちゃって困る
なんだかんだで実際動いてるんだけど何してるかイマイチ理解出来てないんだよね
functionの中でインスタンス作るとその外側ではやっぱアクセスできないのかな
PEARDBのインスタンスがあっちゃこっちゃに散らばっちゃって困る
>>93
プロパティに入れれ
プロパティに入れれ
>>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/
>拡張がやりやすい(やりやすく作ることが出来る)
そうみたいですね。
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/
最近このスレが怖くて見れん俺ガイル
なんでそんな成長早いんだよ・・・おかしいだろ・・・orz
なんでそんな成長早いんだよ・・・おかしいだろ・・・orz
例外処理
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://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{ }で処理するという流れになる。
↑とのことですが、汎用性のある関数やメソッドにしたい場合、エラーが発生したときの処理を書く場所は、関数やメソッドを使う方(呼び出す側)にすることもあるでしょうか?
=戻り値をチェックするというのは、古いやり方なんでしょうか?
類似してるかもしれないスレッド
- PHPでPDF (181) - [66%] - 2023/1/14 20:15 ○
- PHP PHPって (73) - [27%] - 2016/1/21 13:46
- PHP4.0とZend (80) - [27%] - 2018/6/27 23:15
トップメニューへ / →のくす牧場書庫について