PHPコーディング
オブジェクト指向で書いてみる
2010年11月17日
いよいよオブジェクト指向で書いてみました。
PHPのオブジェクト指向入門 | オブジェクト指向PHP.NETとにらめっこしながら、自分のサイトに当てはめてみます。
まずは各ページで共通にある処理を洗い出してみます。
DB接続、DB切断などがありました。
abstract class BaseProcess{
abstract protected function Main();
public function strExec(){
DB接続
//メイン処理
$this->strHTML = $this->Main();
DB切断
}
}
こんな感じで共通クラスを作ります。
各ページの処理はこのクラスを継承します。
それぞれのページを見ると、いくつかのパターンに分類できます。
・左メニューとメインメニューのある2カラムページ
・左ではなくページの上にメニューがあり、その下にマニュアルのあるマニュアルページ
・商品を売っているセールスページ
などです。
次に、例えば、2カラムページを処理するクラスを作ります。
abstract class TwoColum extends BaseProcess{
public function Main(){
DBからデータ取得
左メニュー作成
ヘッダ作成
コンテンツ作成
htmlタグ作成
return $html
}
}
これでBaseProcessが継承されます。
DBからデータを取得する部分は、表ページの表示にも使いますが、管理画面でも使うので、これもクラス化しておきます。
TwoColumを実行したときの実際の処理は、
1. DB接続
2. DBからデータ取得
3. 左メニュー作成
4. ヘッダ作成
5. コンテンツ作成
6. htmlタグ作成
7. DB切断
となります。
TwoColumを呼び出すPHPでは、
//外部ファイル読み込み
require_once('・・・');
//インスタンス作成
$proc = new ContentProcess();
//実行&htmlタグ受取
$html = $proc->strExec();
//出力
echo $html;
これだけです。
なんか物足りない。ちょっと不完全燃焼。
でも不完全燃焼ってことは、コーディングが楽ってこと?
しかも、最終呼び出しPHPはどのファイルもほとんど同じになります。
最終PHPでhtml作成をする方法ももちろんあります。
以前にも感じていましたが、オブジェクト指向でコーディングするのって、手続型より設計が大切です。
ちゃんと構造を把握しておかないと、自分でわけがわからなくなりそうです。
だから他人が作ったオブジェクトってわかりにくいんだ・・・
PHPのオブジェクト指向入門 | オブジェクト指向PHP.NETとにらめっこしながら、自分のサイトに当てはめてみます。
まずは各ページで共通にある処理を洗い出してみます。
DB接続、DB切断などがありました。
abstract class BaseProcess{
abstract protected function Main();
public function strExec(){
DB接続
//メイン処理
$this->strHTML = $this->Main();
DB切断
}
}
こんな感じで共通クラスを作ります。
各ページの処理はこのクラスを継承します。
それぞれのページを見ると、いくつかのパターンに分類できます。
・左メニューとメインメニューのある2カラムページ
・左ではなくページの上にメニューがあり、その下にマニュアルのあるマニュアルページ
・商品を売っているセールスページ
などです。
次に、例えば、2カラムページを処理するクラスを作ります。
abstract class TwoColum extends BaseProcess{
public function Main(){
DBからデータ取得
左メニュー作成
ヘッダ作成
コンテンツ作成
htmlタグ作成
return $html
}
}
これでBaseProcessが継承されます。
DBからデータを取得する部分は、表ページの表示にも使いますが、管理画面でも使うので、これもクラス化しておきます。
TwoColumを実行したときの実際の処理は、
1. DB接続
2. DBからデータ取得
3. 左メニュー作成
4. ヘッダ作成
5. コンテンツ作成
6. htmlタグ作成
7. DB切断
となります。
TwoColumを呼び出すPHPでは、
//外部ファイル読み込み
require_once('・・・');
//インスタンス作成
$proc = new ContentProcess();
//実行&htmlタグ受取
$html = $proc->strExec();
//出力
echo $html;
これだけです。
なんか物足りない。ちょっと不完全燃焼。
でも不完全燃焼ってことは、コーディングが楽ってこと?
しかも、最終呼び出しPHPはどのファイルもほとんど同じになります。
最終PHPでhtml作成をする方法ももちろんあります。
以前にも感じていましたが、オブジェクト指向でコーディングするのって、手続型より設計が大切です。
ちゃんと構造を把握しておかないと、自分でわけがわからなくなりそうです。
だから他人が作ったオブジェクトってわかりにくいんだ・・・
コメント