Heim Backend-Entwicklung PHP-Tutorial PHP设计模式系列 - 模板模式_PHP教程

PHP设计模式系列 - 模板模式_PHP教程

Jul 13, 2016 pm 05:52 PM
php 创建 对象 抽象 方法 模式 模板 von Serie 设计模式

模板模式
模板设计模式创建了一个实施一组方法的抽象对象,子类通常将这个对象作为模板用于自己的设计。
 
设计场景
一般会用于数据库抽象类。
代码设计:
[php] 
if (!defined('IS_INITPHP')) exit('Access Denied!'); 
/*********************************************************************************
 * InitPHP 2.0 国产PHP开发框架  Dao-dbbase Driver DB基类
 *-------------------------------------------------------------------------------
 * 版权所有: CopyRight By initphp.com
 * 您可以自由使用该源码,但是在使用过程中,请保留作者信息。尊重他人劳动成果就是尊重自己
 *-------------------------------------------------------------------------------
 * $Author:zhuli
 * $Dtime:2011-10-09 
***********************************************************************************/ 
abstract class dbbaseInit{ 
 
    /**
     * 抽象数据库链接
     * @param  string $host sql服务器
     * @param  string $user 数据库用户名
     * @param  string $password 数据库登录密码
     * @param  string $database 数据库
     * @param  string $charset 编码
     * @param  string $pconnect 是否持久链接
     */ 
    abstract protected function connect($host, $user, $password, $database, $charset = 'utf8', $pconnect = 0); 
     
    /**
     * 抽象数据库执行语句
     * @param  string $sql SQL语句
     * @return obj
     */ 
    abstract protected function query($sql); 
     
    /**
     * 抽象数据库-结果集中的行数
     * @param $result 结果集
     * @return array
     */ 
    abstract protected function result($result, $num=1); 
     
    /**
     * 抽象数据库-从结果集中取得一行作为关联数组
     * @param $result 结果集
     * @return array
     */ 
    abstract protected function fetch_assoc($result); 
     
    /**
     * 抽象数据库-从结果集中取得列信息并作为对象返回
     * @param  $result 结果集
     * @return array
     */ 
    abstract protected function fetch_fields($result); 
     
    /**
     * 抽象数据库-前一次操作影响的记录数
     * @return int
     */ 
    abstract protected function affected_rows(); 
     
    /**
     * 抽象数据库-结果集中的行数
     * @param $result 结果集
     * @return int
     */ 
    abstract protected function num_rows($result); 
     
    /**
     * 抽象数据库-结果集中的字段数量
     * @param $result 结果集
     * @return int
     */ 
    abstract protected function num_fields($result); 
     
    /**
     * 抽象数据库-获取上一INSERT的ID值
     * @return Int
     */ 
    abstract protected function insert_id(); 
     
    /**
     * 抽象数据库-释放结果内存
     * @param obj $result 需要释放的对象
     */ 
    abstract protected function free_result($result); 
     
    /**
     * 抽象数据库链接关闭
     * @param  string $sql SQL语句
     * @return obj
     */ 
    abstract protected function close(); 
     
    /**
     * 错误信息
     * @return string
     */ 
    abstract protected function error(); 

 
 
if (!defined('IS_INITPHP')) exit('Access Denied!'); 
/*********************************************************************************
 * InitPHP 2.0 国产PHP开发框架  Dao-mysqli 基类
 *-------------------------------------------------------------------------------
 * 版权所有: CopyRight By initphp.com
 * 您可以自由使用该源码,但是在使用过程中,请保留作者信息。尊重他人劳动成果就是尊重自己
 *-------------------------------------------------------------------------------
 * $Author:zhuli
 * $Dtime:2011-10-09 
***********************************************************************************/ 
class mysqliInit extends dbbaseInit{ 
     
    public $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 connect error!'); 
        mysqli_query($link_id, 'SET NAMES ' . $charset); 
        if (!mysqli_select_db($link_id, $database)) InitPHP::initError('database is not exist!'); 
        return $link_id; 
    } 
     
    /**
     * SQL执行器
     * @param  string $sql SQL语句
     * @return obj
     */ 
    public function query($sql) { 
        return mysqli_query($this->link_id, $sql); 
    } 
     
    /**
     * 结果集中的行数
     * @param $result 结果集
     * @return array
     */ 
    public function result($result, $num=1) { 
        return mysqli_result($result, $num); 
    } 
         
    /**
     * 从结果集中取得一行作为关联数组
     * @param $result 结果集
     * @return array
     */ 
    public function fetch_assoc($result) { 
        return mysqli_fetch_assoc($result); 
    } 
     
    /**
     * 从结果集中取得列信息并作为对象返回
     * @param  $result 结果集
     * @return array
     */ 
    public function fetch_fields($result) { 
        return mysqli_fetch_field($result); 
    } 
     
    /**
     * 结果集中的行数
     * @param $result 结果集
     * @return int
     */ 
    public function num_rows($result) { 
        return mysqli_num_rows($result); 
    } 
     
    /**
     * 结果集中的字段数量
     * @param $result 结果集
     * @return int
     */ 
    public function num_fields($result) { 
        return mysqli_num_fields($result); 
    } 
     
    /**
     * 释放结果内存
     * @param obj $result 需要释放的对象
     */ 
    public function free_result($result) { 
        return mysqli_free_result($result); 
    } 
     
    /**
     * 获取上一INSERT的ID值
     * @return Int
     */ 
    public function insert_id() { 
        return mysqli_insert_id($this->link_id); 
    } 
     
    /**
     * 前一次操作影响的记录数
     * @return int
     */ 
    public function affected_rows() { 
        return mysqli_affected_rows($this->link_id); 
    } 
     
    /**
     * 关闭连接
     * @return bool
     */ 
    public function close() { 
        if ($this->link_id !== NULL) @mysqli_close($this->link_id); 
        $this->link_id = NULL; 
        return true; 
    } 
     
    /**
     * 错误信息
     * @return string
     */ 
    public function error() { 
        return mysqli_error($this->link_id); 
    } 
     

作者:initphp

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/478081.htmlTechArticle模板模式 模板设计模式创建了一个实施一组方法的抽象对象,子类通常将这个对象作为模板用于自己的设计。 设计场景 一般会用于数据库...
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

CakePHP-Projektkonfiguration CakePHP-Projektkonfiguration Sep 10, 2024 pm 05:25 PM

In diesem Kapitel werden wir die Umgebungsvariablen, die allgemeine Konfiguration, die Datenbankkonfiguration und die E-Mail-Konfiguration in CakePHP verstehen.

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

CakePHP Datum und Uhrzeit CakePHP Datum und Uhrzeit Sep 10, 2024 pm 05:27 PM

Um in cakephp4 mit Datum und Uhrzeit zu arbeiten, verwenden wir die verfügbare FrozenTime-Klasse.

CakePHP-Datei hochladen CakePHP-Datei hochladen Sep 10, 2024 pm 05:27 PM

Um am Datei-Upload zu arbeiten, verwenden wir den Formular-Helfer. Hier ist ein Beispiel für den Datei-Upload.

CakePHP-Routing CakePHP-Routing Sep 10, 2024 pm 05:25 PM

In diesem Kapitel lernen wir die folgenden Themen im Zusammenhang mit dem Routing kennen.

Besprechen Sie CakePHP Besprechen Sie CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP ist ein Open-Source-Framework für PHP. Es soll die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich vereinfachen. CakePHP basiert auf einer MVC-ähnlichen Architektur, die sowohl leistungsstark als auch leicht zu verstehen ist. Modelle, Ansichten und Controller gu

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein Dec 20, 2024 am 11:31 AM

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

Der beste Zeitpunkt, um die Huawei Mate 60-Serie, die neue KI-Eliminierung + Image-Upgrade zu kaufen und Herbstaktionen zu genießen Der beste Zeitpunkt, um die Huawei Mate 60-Serie, die neue KI-Eliminierung + Image-Upgrade zu kaufen und Herbstaktionen zu genießen Aug 29, 2024 pm 03:33 PM

Seitdem die Huawei Mate60-Serie letztes Jahr in den Handel kam, nutze ich persönlich das Mate60Pro als mein Haupttelefon. In fast einem Jahr wurde das Huawei Mate60Pro mehreren OTA-Upgrades unterzogen und das Gesamterlebnis wurde erheblich verbessert, sodass die Menschen das Gefühl haben, immer neu zu sein. So hat beispielsweise die Huawei Mate60-Serie kürzlich noch einmal ein deutliches Upgrade der Bildgebungsfunktionen erhalten. Erstens die neue KI-Eliminierungsfunktion, die Passanten und Schmutz auf intelligente Weise eliminieren und leere Bereiche automatisch ausfüllen kann. Zweitens wurden die Farbgenauigkeit und die Teleschärfe der Hauptkamera erheblich verbessert. Angesichts der Schulanfangssaison hat die Huawei Mate60-Serie auch eine Herbstaktion gestartet: Beim Kauf des Telefons erhalten Sie einen Rabatt von bis zu 800 Yuan, der Startpreis liegt bei nur 4.999 Yuan. Häufig verwendete und oft neue Produkte mit großem Wert

See all articles