ホームページ >バックエンド開発 >PHPチュートリアル >PHP デザイン パターン シリーズ - テンプレート パターン_PHP チュートリアル

PHP デザイン パターン シリーズ - テンプレート パターン_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:52:53823ブラウズ

テンプレートモード
テンプレート デザイン パターンは、一連のメソッドを実装する抽象オブジェクトを作成し、多くの場合、サブクラスはこのオブジェクトを独自のデザインのテンプレートとして使用します。

デザインシーン
通常、データベースの抽象クラスに使用されます。
コード設計:
[php]
if (!define('IS_INITPHP')) exit('アクセスが拒否されました!'); /*************************************************** * *********************************
* InitPHP 2.0 国産PHP開発フレームワーク Dao-dbbase Driver DB基本クラス
*------------------------------------------------ - ---------------------------------
* 著作権: CopyRight By initphp.com
※このソースコードはご自由にお使いいただけますが、ご使用の際は作者情報を保管しておいてください。他人の労働の成果を尊重することは、自分自身を尊重することです
*------------------------------------------------ - ---------------------------------
* $作者:zhuli
* $Dtime:2011-10-09
************************************************* * *********************************/
抽象クラス dbbaseInit{

/**
*抄録データベースリンク
* @param string $host SQL サーバー
* @param string $user データベースのユーザー名
* @param string $password データベースログインパスワード
* @param string $database データベース
* @param string $charset エンコーディング
* @param string $pconnect リンクが永続的かどうか
​​*/
抽象保護関数 connect($host, $user, $password, $database, $charset = 'utf8', $pconnect = 0);
/**
* *抽象的なデータベース実行ステートメント
* @param string $sql SQL ステートメント
* @return obj
​​*/
抽象保護関数クエリ($sql);
/**
*抽象データベース - 結果セット内の行数
* @param $result 結果セット
* @return 配列
​​*/
抽象保護関数 result($result, $num=1);
/**
*抽象データベース - 結果セットから連想配列として行を取得します
* @param $result 結果セット
* @return 配列
​​*/
抽象保護関数 fetch_assoc($result);
/**
*抽象データベース - 結果セットから列情報を取得し、オブジェクトとして返します
* @param $result 結果セット
* @return 配列
​​*/
抽象保護関数 fetch_fields($result);
/**
* 抽象データベース - 前の操作によって影響を受けたレコードの数
* @return int
​​*/
抽象保護関数affected_rows();
/**
*抽象データベース - 結果セット内の行数
* @param $result 結果セット
* @return int
​​*/
抽象保護関数 num_rows($result);
/**
* * 抽象データベース - 結果セット内のフィールドの数
* @param $result 結果セット
* @return int
​​*/
抽象保護関数 num_fields($result);
/**
*抽象データベース - 前の INSERT の ID 値を取得します
* @return Int
​​*/
抽象保護関数 insert_id();
/**
*抽象データベースリリース結果メモリ
* @param obj $result 解放する必要があるオブジェクト
​​*/
    抽象保護関数 free_result($result); 
     
    /**
※抄録データベースのリンクは閉鎖しました
* @param string $sql SQL ステートメント
* @return obj
​​*/
    抽象保護関数 close(); 
     
    /**
* エラーメッセージ
* @戻り文字列
​​*/
    抽象保護関数 error(); 
}
 
 
if (!define('IS_INITPHP')) exit('アクセスが拒否されました!'); 
/*************************************************** * *********************************
* InitPHP 2.0 国産 PHP 開発フレームワーク Dao-mysqli 基本クラス
*------------------------------------------------ - ---------------------------------
* 著作権: CopyRight By initphp.com
※このソースコードはご自由にお使いいただけますが、ご使用の際は作者情報を保管しておいてください。他人の労働の成果を尊重することは、自分自身を尊重することです
*------------------------------------------------ - ---------------------------------
* $作者:zhuli
* $Dtime:2011-10-09
************************************************* * *********************************/
クラス mysqliInit extends dbbaseInit{
     
    パブリック $link_id; //链接对象
      
    /**
* MYSQL コネクタ
* @param string $host SQL サーバー
* @param string $user データベースのユーザー名
* @param string $password データベースログインパスワード
* @param string $database データベース
* @param string $charset エンコーディング
* @param string $pconnect リンクが永続的かどうか
* @return obj
​​*/
    public function connect($host, $user, $password, $database, $charset = 'utf8', $pconnect = 0) {
        $link_id = ($pconnect == 0) ? mysqli_connect($host, $user, $password) : mysqli_pconnect($host, $user, $password); 
        if (!$link_id) InitPHP::initError('mysql 接続エラー!'); 
        mysqli_query($link_id, 'SET NAMES ' . $charset); 
        if (!mysqli_select_db($link_id, $database)) InitPHP::initError('データベースが存在しません!'); 
        $link_id を返します; 
    }
     
    /**
* SQL エグゼキュータ
* @param string $sql SQL ステートメント
* @return obj
​​*/
    パブリック関数クエリ($sql) {
        return mysqli_query($this->link_id, $sql); 
    }
     
    /**
* *結果セット内の行数
* @param $result 結果セット
* @return 配列
​​*/
    パブリック関数 result($result, $num=1) {
        return mysqli_result($result, $num); 
    }
         
    /**
* 結果セットから連想配列として行を取得します
* @param $result 結果セット
* @return 配列
​​*/
    パブリック関数 fetch_assoc($result) {
        mysqli_fetch_assoc($result) を返します; 
    }
     
    /**
* 結果セットから列情報を取得し、オブジェクトとして返します
* @param $result 結果セット
* @return 配列
​​*/
    パブリック関数 fetch_fields($result) {
        mysqli_fetch_field($result) を返します。 
    }
     
    /**
* *結果セット内の行数
* @param $result 結果セット
* @return int
​​*/
    パブリック関数 num_rows($result) {
        mysqli_num_rows($result) を返します; 
    }
     
    /**
* *結果セット内のフィールドの数
* @param $result 結果セット
* @return int
​​*/
    パブリック関数 num_fields($result) {
        mysqli_num_fields($result) を返します。 
    }
     
    /**
*リリース結果メモリ
* @param obj $result 解放する必要があるオブジェクト
​​*/
    パブリック関数 free_result($result) {
        mysqli_free_result($result) を返します。 
    }
     
    /**
* 前の INSERT の ID 値を取得します
* @return Int
​​*/
    パブリック関数 insert_id() {
        return mysqli_insert_id($this->link_id); 
    }
     
    /**
* * 前回の操作によって影響を受けたレコードの数
* @return int
​​*/
    パブリック関数affected_rows() {
        return mysqli_affected_rows($this->link_id); 
    }
     
    /**
*接続を閉じる
* @return bool
​​*/
    パブリック関数 close() {
        if ($this->link_id !== NULL) @mysqli_close($this->link_id); 
        $this->link_id = NULL; 
        true を返します。 
    }
     
    /**
* エラーメッセージ
* @戻り文字列
​​*/
    パブリック関数 error() {
        return mysqli_error($this->link_id); 
    }
     
}
作者:initphp

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/478081.html技術記事モジュール モード モジュール設計モードは、一組のメソッドを実装するための抽象オブジェクトを構築します。サブクラスは通常、このオブジェクトをデータベース用のモジュールとして使用します。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。