- 1 名前:1 ◆SWtzLesEmM mailto:age [2007/02/23(金) 13:35:52 ID:???]
- PHPを使ってプログラミングするとき、
プロシージャ指向(手続き型、構造化プログラミング)でもできますが、 オブジェクト指向を使った場合の恩恵を享受するために、 PHPでオブジェクト指向プログラミングの勉強をしてみましょう。 <目的> PHP5でオブジェクト指向プログラミングを行なうための知識を習得する。 (PHP4のOOPもOK、このスレが1000に行く前にPHP6が出たらPHP6のOOPもOK) <方向性> ・このスレは、プログラミング初心者、PHP初心者の勉強の場として利用することを前提にします。 ・PHPのOOPの話題に限定します。 (Ruby、Python、Javaなど他言語のOOPについては、その言語のスレッドでお願いします。) ・PHPのOOP学習に役立つ本、WEBサイトの紹介をお願いします。 <その他> ・略記は、「OO」=「オブジェクト指向」、「OOP」=「オブジェクト指向プログラミング」でお願いします。 ・質問をする人はなるべくトリップを付けましょう。 ・荒らし、煽り、叩き、気違いは無視・無干渉でお願いします。 このスレで、今日から貴方もOOP!!!\(^o^)/
- 273 名前:nobodyさん mailto:sage [2008/02/07(木) 12:35:22 ID:???]
- >>271今こんな感じ。
[DataModel.php] <?php /** * データModel抽象クラスです。 */ class DataModel extends Model { # @access private var $_items; # @access public var $file_name; # @access public function setItem($key, $value) { $this->_items[$key] = $value; } # @access public function getItem($key) { return $this->_items[$key]; } } ?>
- 274 名前:nobodyさん mailto:sage [2008/02/07(木) 12:36:19 ID:???]
- [InsertModel.php]
<?php /** * データ追加Model抽象クラスです。 */ class InsertModel extends DataModel { # @access sealed function & _onExecute(&$param) { return $this->_OnInsert(&$param); } # @access protected function & _onInsert(&$param) { trigger_error('オーバーライドして下さい。', E_USER_ERROR); } }
- 275 名前:nobodyさん mailto:sage [2008/02/07(木) 12:37:26 ID:???]
- [SampleInsertModel.php]
<?php /** * データ追加 サンプルクラスです。 */ class SampleInsertModel extends InsertModel { # @access protected function & _onInsert(&$param) { // ここで初めてユーザ定義のメソッドを実行する。 // FWからここが呼ばれるまで待ってるのがポイント! // INSERTイベントの処理ハンドラに記述するともとれるね。 return $this->_saveData(); } /** * ユーザ定義のプライベートメソッド */ # @access private function _saveData() { // リクエストは以下のインターフェイスで取得。 $value = $this->getItem('hoge_data'); // ここで初めてHogeHogeする。 // DBオブジェクト呼ぶなりご自由に! return $data; } } ?>
|

|