Detaillierte Erläuterung der Beispiele für den PHP-Datenobjekt-Zuordnungsmodus

伊谢尔伦
Freigeben: 2023-03-12 10:04:01
Original
1550 Leute haben es durchsucht

Es gibt viele verschiedene Muster im Designmuster in PHP. Hier stellen wir Ihnen ein weniger häufig verwendetes Datenzuordnungsmuster vor, das Sie sich gemeinsam ansehen können

Der Datenzuordnungsmodus ermöglicht es Ihnen, Ihre Anwendung besser zu organisieren, um mit der Datenbank zu interagieren. Der

-Datenzuordnungsmodus reduziert die Dichte der Kombination zwischen den Attributen des -Objekts und den Tabellenfeldern, in denen sie gespeichert sind. Das Wesentliche des Datenzuordnungsmusters ist eine Klasse, die die Attribute oder Methoden der Klasse den entsprechenden Feldern der Datenbank zuordnet oder übersetzt und umgekehrt.

Die Aufgabe (Arbeit) der Datenzuordnung besteht darin, die von beiden Parteien präsentierten Informationen zu verstehen und den Zugriff auf die Informationen zu steuern, beispielsweise basierend auf den in der Datentabelle gespeicherten Informationen

Erstellen Sie ein neues Domänenobjekt neu oder verwenden Sie Domänenobjektinformationen, um zugehörige Daten in der Datentabelle zu aktualisieren oder zu löschen.

Es gibt viele Implementierungsmethoden zum Speichern der Zuordnungsbeziehung zwischen objektorientiertem Code und Datenbanktabellen und -feldern. Eine mögliche Methode besteht darin, diese Zuordnungsbeziehung durch manuelles Codieren in der Datenzuordnungsklasse zu speichern.

Eine Alternative besteht darin, PHP-Arrays zu verwenden und diese in die Klasse selbst zu kodieren. Diese Klasse kann auch Daten aus externen Quellen beziehen, beispielsweise aus INI- oder XML-Dateien.

Der Datenobjekt-Zuordnungsmodus ordnet Objekte und Datenspeicherung zu. Operationen an einem Objekt werden Operationen an der Datenspeicherung zugeordnet.

Implementieren Sie den Datenobjekt-Zuordnungsmodus im Code und implementieren Sie eine ORM-Klasse, um komplexe SQL-Anweisungen in Objektattributoperationen abzubilden. Objektrelationale Zuordnung (ORM)

ha_cl-Tabelle

Hacl.php

<?php
namespace Baobab;
class Hacl{
public $id;
public $haclname;
public $haclcode;
public $hacls;
protected $db;
function construct($id){
$this->db = new \Baobab\Database\Mysqli();
$this->db->connect(&#39;127.0.0.1&#39;, &#39;root&#39;, &#39;&#39;, &#39;test&#39;);
$res = $this->db->query("select * from ha_cl where id = {$id}");
$data = $res->fetch_assoc();
$this->id = $data[&#39;ID&#39;];
$this->haclname = $data[&#39;ha_cl_name&#39;];
$this->haclcode = $data[&#39;ha_cl_code&#39;];
$this->hacls = $data[&#39;hacls&#39;];
}
function destruct(){
$this->db->query("update ha_cl set
ha_cl_code = &#39;{$this->haclcode}&#39;,
ha_cl_name = &#39;{$this->haclname}&#39;,
hacls = &#39;{$this->hacls}&#39;
where ID = {$this->id}
limit 1");
}
}
Nach dem Login kopieren

Factory.php

<?php
namespace Baobab;
class Factory{
static function getHacl($id){
$key = &#39;user_&#39;.$id;
$user = \Baobab\Register::get($key);//表中id不同表示的是不同的对象
if(!$user){
$user = new \Baobab\Hacl($id);
\Baobab\Register::set($key, $user);
}
return $user;
}
}
Nach dem Login kopieren

Register.php

<?php
namespace Baobab;
class Register{
protected static $objects;
static function set($alias, $object){
self::$objects[$alias] = $object;
}
static function _unset($alias) {
unset(self::$objects[$alias]);
}
static function get($name) {
return self::$objects[$name];
}
}
Nach dem Login kopieren

index.php

class Page{
function index(){
$hacl = Baobab\Factory::getHacl(13);
$hacl->haclname = &#39;测试名称&#39;;
$this->test();
echo &#39;ok&#39;;
}
function test(){
$hacl = Baobab\Factory::getHacl(13);
$hacl->hacls = &#39;测试内容&#39;;
}
}
$page = new Page();
$page->index();
Nach dem Login kopieren

Die Verwendung des Fabrikmusters wird das ObjektHacl mehrmals erstellen, was eine Verschwendung von Ressourcen darstellt Wird als Parameter verwendet. Die Übergabe verursacht einerseits zusätzliche Nutzungskosten, andererseits kann es bei Verwendung dieses Objekts an vielen Stellen leicht zu Fehlern kommen, sodass im Werksmodus der Registrierungsbaummodus verwendet wird dieses Problem lösen.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Beispiele für den PHP-Datenobjekt-Zuordnungsmodus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage