KUNISAN.JPブログ - 1151 / 1695 ページ

新規書き込み

続・PHPでのオブジェクト指向プログラミング

名前: 小川 邦久 リンク: http://kunisan.jp/ 日付: 2010年3月17日
昨年9月に初めてPHPでクラス、プロパティ、メソッドなどを使った「オブジェクト指向」のプログラムを組んでみましたが、それから今まで全くタッチしないまま来てしまいました。比較的規模の大きなプログラムも、手馴れたモジュールと関数定義だけで済ませていました。

ここ最近、PHP関連の文献やホームページを目にする機会が増えてきて、PHPの理解をより深めようと思ったと同時に、久しぶりに「オブジェクト指向」のプログラミングをやってみようとも思いました。

昨年9月に作成したものは、書籍に載っていたコマンドを使って、動作確認しながら動かしただけの、取って付けたような「オブジェクト指向」でした。今回はシンプルながらも、インスタンスのプロパティをいじりながら処理を進めていく形で、少しだけ「それらしさ」が出てきたように思います。ネタは「HTMLのタグを取り払って、テキストのみに変換して表示する」という、2年ほど前に作成したものの改良版です。

■■■ ホームページをテキストのみに変換 ■■■
<?php

//クラスの定義
class PageToText {

//ページコンテンツプロパティ
public $page_contents;

//ページコンテンツ取得メソッド
function contents_get($page_url) {
if ($page_url != '') {
$this->page_contents = file_get_contents($page_url);
} else {
$this->page_contents = '';
}
}

//エンコード変換メソッド
function contents_convert($page_encode) {
$this->page_contents = mb_convert_encoding($this->page_contents,'SJIS',$page_encode);
}

//タグ除去メソッド
function contents_tagstrip() {
$this->page_contents = strip_tags($this->page_contents);
}

//コンテンツ表示メソッド
function contents_display() {
print $this->page_contents;
}

}

//URL設定
$url = 'http://kunisan.jp/';

//エンコード設定
$encode = 'SJIS';

//使用言語とエンコードの指定
mb_language("ja");
mb_internal_encoding("SJIS");
mb_regex_encoding("SJIS");

//インスタンス生成
$page_view = new PageToText();

//コンテンツの取得
$page_view->contents_get($url);

//エンコード
if ($encode != 'SJIS') {
$page_view->contents_convert($encode);
}

//タグの除去
$page_view->contents_tagstrip();

//コンテンツの表示
$page_view->contents_display();

?>
■■■■■■■■■■■■■■■■■■■■■■

オブジェクト、インスタンス、プロパティ、メソッドなどの基本概念については、以前よりもだいぶ感覚的に理解できるようになりました。あと、コンストラクタ、デストラクタ、継承、抽象クラスなども実際にプログラムを作って動かしてみて、基本的な概念は理解できたのですが、どのようなプログラムにどう使えば便利になるのかは、いまいち分かっていません。

まあ、今はそんな感じでも、そのうち普通に使う日がやって来るのかもしれません。プログラミングに限らず、今までもそうやって事が進んでましたから…。





PHP関連記事(リンク一覧): さくらレンタルサーバーのアクセス履歴をPHPで表示 / PHPで画像のアップロード(さくらレンタルサーバーのPHPでImageMagick) / PHP REVERSI(オセロもどき)の続き / PHP REVERSI(リバーシ) - オセロもどきゲームの公開 / PHP版-簡易アクセスブロック(IPアドレス、ホスト名、OS、ブラウザ名で制御) / ...(記事連続表示)

PHP 逆引きレシピ (PROGRAMMER’S RECiPE)
PHP 逆引きレシピ (PROGRAMMER’S RECiPE) をAmazon.co.jpでチェック