PHPでOOP (894レス)
PHPでOOP http://medaka.5ch.net/test/read.cgi/php/1172205352/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
174: 1 ◆SWtzLesEmM [age] 2008/01/29(火) 14:38:20 ID:??? http://tbox.jpn.org/wiki/rnh/index.php?AboutPage.txt RandomNoteのMain.phpは参考になるでしょうか? preg_match preg_replace array_push array_pop などの関数を使って、文字列の切り貼りをしてるんですねー。 http://medaka.5ch.net/test/read.cgi/php/1172205352/174
175: nobodyさん [sage] 2008/01/29(火) 14:39:05 ID:??? OOPってより単にクラスの使い方書いてるように見えるのはまあいいとして メソッドの中でstringをreturnせずにecho使うのは>>167で書いてるように汎用性って面もあるけど 処理と表示の分離って意味合いもあるからちゃんとstringで返したほうがいいよ http://medaka.5ch.net/test/read.cgi/php/1172205352/175
176: nobodyさん [age] 2008/01/29(火) 15:39:09 ID:??? >>175 > OOPってより単にクラスの使い方書いてるように見えるのはまあいいとして OOPについて説明するとなると、具体的なソースコードとは離れた方が 良くなったりしますからね。 (クラスの使い方書いているように見えるとしても、)PHPでclassを 組む場合のメリットみたいな位置づけで学んでいこうと思っています。 > 処理と表示の分離って意味合いもあるからちゃんとstringで返したほうがいいよ 確かに汎用性以外にそういう目的もありますね。 次のものでstringで返すように書き換えます。 http://medaka.5ch.net/test/read.cgi/php/1172205352/176
177: nobodyさん [age] 2008/01/29(火) 18:16:08 ID:??? htmlのformのコードもクラス化するのが本当の流れんだろうけれどな。 いきなりそれをやると分かりにくくなるかな・・・ http://medaka.5ch.net/test/read.cgi/php/1172205352/177
178: に ◆lKs5QMUHoA [sage] 2008/01/29(火) 19:20:19 ID:??? ChStrクラスのサンプルソースを投稿してた者ですが、 今までnobodyさんで書いてたけど、分かりにくくなるかと思ったので 酉入れるようにしてみます。 >>5に書いてあるように、オブジェクト指向は「変数を保持できる事」が メリットだと思うのですが、これがWebアプリだとどうも実感が無かったりします。 リッチクライアントだと、マウスのクリックに合わせて、メソッドが呼び出され、 そのアプリケーションが終了するまでの間、各種オブジェクトの中の変数に 状態が保持されるという構造なので、そのメリットが感じられるのですが、 Webアプリでは、POSTする度にオブジェクトの変数の状態はリセット されてしまうので、クラスを書いたとしても、結局はグローバル変数から 各種オブジェクトの変数に代入するみたいなコードを書かなくては ならなくなってしまうので、このメリットがあるのかと思ってしまうのです。 これは、勉強不足だからなのでしょうか。。。 http://medaka.5ch.net/test/read.cgi/php/1172205352/178
179: nobodyさん [sage] 2008/01/29(火) 22:51:04 ID:??? >>160 他の人の話のほうがよっぽど核心を突いてるよ http://medaka.5ch.net/test/read.cgi/php/1172205352/179
180: nobodyさん [sage] 2008/01/29(火) 23:05:47 ID:??? >>160のはてなのリンクの4番目の話、2chの別の板でも 読んだことがあるけれど、この話本当なの? 具体的に何処でどういう商売をしての話なんだろうか。 アプリケーションを売る話?それとも開発環境用のソフトを売る話? http://medaka.5ch.net/test/read.cgi/php/1172205352/180
181: nobodyさん [sage] 2008/01/30(水) 21:59:22 ID:??? ピュアな意味でオブジェクトを操作したいなら ボタンのクリックに関する全ての画面遷移に関してserializeとunserializeを管理する必要があるだろ <?php require_once("hiroyuki.class.php"); $hiroyuki = unserialize($_SESSION["hiroyuki"] http://medaka.5ch.net/test/read.cgi/php/1172205352/181
182: nobodyさん [] 2008/01/31(木) 07:20:40 ID:NaJ3keB3 >>178 ユーティリティクラスの再実装みたいな事を熱心にやっても あまり意味が無いと思いますよ。 まさにあなたの言う「いちいち書くのがめんどくさい」のを回避する為に OOPがあるんだと思います・・・ OOPの勉強なら、簡単なWEBフレームワークを自作するのが一番良いよ。 知識の無い段階でいきなりPHPでOOPって無理だと思いますよ。 背伸びせず、まずjavaやC#を学習する方が近道かもしれないよ。 http://medaka.5ch.net/test/read.cgi/php/1172205352/182
183: nobodyさん [sage] 2008/01/31(木) 08:15:31 ID:??? .NET 以降の VisualBasic ってどうなの? http://medaka.5ch.net/test/read.cgi/php/1172205352/183
184: nobodyさん [sage] 2008/01/31(木) 17:31:43 ID:??? MVCモデルにそって、ユーザの入力データと、CSVファイルのデータを 読み込んで表示させるというものを作ってみました。 ファイル:全部で5つ。index.phpを実行する。 cfcontrol.php cfview.php index.php cfmodel.php csv.txt [csv] aaa,bbb,ccc [index.php] <?php include("./cfcontrol.php"); $form_str = $_POST["form"]; $in_str = $_POST["key"]; $form = new CFControl($form_str, $in_str); ?> http://medaka.5ch.net/test/read.cgi/php/1172205352/184
185: nobodyさん [sage] 2008/01/31(木) 17:32:35 ID:??? [cfcontrol.php] <?php include("./cfview.php"); include("./cfmodel.php"); class CFControl{ function CFControl($form_str, $in_str){ if( ($form_str == "")or($form_str == "in") ){ $form = new CFView("index.php","in",""); $form->Write_HTML(); }elseif($form_str == "out"){ $da = new CFModel(); $dat = $da->ReadDat($in_str); $form = new CFView("index.php","out", $dat); $form->Write_HTML(); } } } ?> http://medaka.5ch.net/test/read.cgi/php/1172205352/185
186: nobodyさん [sage] 2008/01/31(木) 17:33:57 ID:??? [cfmodel.php] <?php class CFModel{ var $m_csv_file; // コンストラクタ function CFModel(){ // 読み込むCSVファイルを指定 $this->m_csv_file = "csv.txt"; } // データを取り出す。 function ReadDat($str){ $INFILE = fopen($this->m_csv_file,"r"); $line = fgets($INFILE, 1024); fclose($INFILE); $line = $line . ", " . $str; return $line; } } ?> http://medaka.5ch.net/test/read.cgi/php/1172205352/186
187: nobodyさん [sage] 2008/01/31(木) 17:37:50 ID:??? [cfview.php](1/2) <?php class CFView{ var $m_file; // POSTするファイル名 var $m_type; // 表示するフォームの種類。in か out var $m_line; // 表示するデータ // コンストラクタ function CFView($file, $type, $line){ $this->m_file = $file; $this->m_type = $type; $this->m_line = $line; } // private function in_html(){ echo "<html><body>"; echo '<form method="POST" action="' . $this->m_file . '">'; echo '<input type="hidden" name="form" value="out">'; echo '<input type="text" name="key"><input type="submit" value="送信">'; echo "</form></body></html>"; } http://medaka.5ch.net/test/read.cgi/php/1172205352/187
188: nobodyさん [sage] 2008/01/31(木) 17:39:35 ID:??? [cfview.php](2/2) // private function out_html(){ echo "<html><body>"; echo '<form method="POST" action="' . $this->m_file . '">'; echo '<input type="hidden" name="form" value="in">'; echo "$this->m_line<br>"; echo '<input type="submit" value="戻る"></form></body></html>'; } // public function Write_HTML(){ if($this->m_type == "in"){ $this->in_html(); }elseif($this->m_type == "out"){ $this->out_html(); } } } ?> http://medaka.5ch.net/test/read.cgi/php/1172205352/188
189: nobodyさん [sage] 2008/01/31(木) 17:51:38 ID:??? フレームワーク使えば? http://medaka.5ch.net/test/read.cgi/php/1172205352/189
190: に ◆lKs5QMUHoA [sage] 2008/01/31(木) 19:03:23 ID:??? とりあえず、MVCに分けて枠組みを作ってみたけれど、 これをより抽象化させていって、「継承して使ってください」という 方向にするのか、それとも最初はクラスの数を増やさないように しながら簡単なアプリケーションを作る方向にするべきか。 どっちの方向に持っていったほうがいいのか迷うな。。。 ま、そんなことを考える暇があったら手を動かしてみろという 話なのかもしれないが。。 http://medaka.5ch.net/test/read.cgi/php/1172205352/190
191: nobodyさん [sage] 2008/01/31(木) 19:08:05 ID:??? >>190 自分で考えるのも良いが、君が今やっていることを やってしまっているのが、フレームワークだ。 まず既存のフレームワークがどうなっているのか参考しろ。 http://medaka.5ch.net/test/read.cgi/php/1172205352/191
192: nobodyさん [sage] 2008/01/31(木) 19:44:25 ID:??? 俺も初心者だからこれが最善とは言い切れないけど newするときに全部引数で渡すってのはナシじゃね? 分かりやすいところだけ書き出すと [index.php] $form = new CFControll(); [cfcontrol.php] コンストラクタ() { $form_str = $_POST['form']; $in_str = $_POST['key']; if(inだったら){ $view = new CFView(); $view->m_type = 'in'; $view->Write_HTML(); } } [cfview.php] メンバ変数 var $m_file = 'index.php'; var $m_type = false; var $m_line = null; http://medaka.5ch.net/test/read.cgi/php/1172205352/192
193: 192 [sage] 2008/01/31(木) 19:50:52 ID:??? フレームワーク使ってみろっていうのは賛成 疎結合にとかDRYにっていうのがだんだんわかってきた 理解したところで戻ってきて〜の方が結果的に早そう 俺はまだ勉強中だからそこまで行ってないけど http://medaka.5ch.net/test/read.cgi/php/1172205352/193
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 701 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.008s