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('127.0.0.1', 'root', '', 'test'); $res = $this->db->query("select * from ha_cl where id = {$id}"); $data = $res->fetch_assoc(); $this->id = $data['ID']; $this->haclname = $data['ha_cl_name']; $this->haclcode = $data['ha_cl_code']; $this->hacls = $data['hacls']; } function destruct(){ $this->db->query("update ha_cl set ha_cl_code = '{$this->haclcode}', ha_cl_name = '{$this->haclname}', hacls = '{$this->hacls}' where ID = {$this->id} limit 1"); } }
Factory.php
<?php namespace Baobab; class Factory{ static function getHacl($id){ $key = 'user_'.$id; $user = \Baobab\Register::get($key);//表中id不同表示的是不同的对象 if(!$user){ $user = new \Baobab\Hacl($id); \Baobab\Register::set($key, $user); } return $user; } }
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]; } }
index.php
class Page{ function index(){ $hacl = Baobab\Factory::getHacl(13); $hacl->haclname = '测试名称'; $this->test(); echo 'ok'; } function test(){ $hacl = Baobab\Factory::getHacl(13); $hacl->hacls = '测试内容'; } } $page = new Page(); $page->index();
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!