PHP设计模式系列 - 模板模式_PHP教程
模板模式
模板设计模式创建了一个实施一组方法的抽象对象,子类通常将这个对象作为模板用于自己的设计。
设计场景
一般会用于数据库抽象类。
代码设计:
[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

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

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

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.

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

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

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

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

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

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
