ホームページ >バックエンド開発 >PHPチュートリアル >PHP デザイン パターン シリーズ - テンプレート パターン_PHP チュートリアル
テンプレートモード
テンプレート デザイン パターンは、一連のメソッドを実装する抽象オブジェクトを作成し、多くの場合、サブクラスはこのオブジェクトを独自のデザインのテンプレートとして使用します。
デザインシーン
通常、データベースの抽象クラスに使用されます。
コード設計:
[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