Explication détaillée des exemples de modes de mappage d'objets de données PHP

伊谢尔伦
Libérer: 2023-03-12 10:04:01
original
1549 Les gens l'ont consulté

Il existe de nombreux modèles différents dans le modèle de conception en PHP, nous allons vous présenter ici un modèle de mappage de données moins couramment utilisé. Les amis intéressés peuvent l'examiner ensemble

<.>Le mode Mappage de données vous permet de mieux organiser votre application pour interagir avec la base de données. Le mode de mappage de données


réduit la densité de la combinaison entre les attributs de l'

objet et les champs de la table dans lesquels ils sont stockés. L'essence du modèle de mappage de données est une classe qui mappe ou traduit les attributs ou les méthodes de la classe vers les champs correspondants de la base de données, et vice versa.

Le rôle (le travail) du mappage de données est de comprendre les informations présentées par les deux parties et de contrôler l'accès aux informations, par exemple en fonction des informations stockées dans la table de données

Reconstruisez un nouvel objet de domaine ou utilisez les informations de l'objet de domaine pour mettre à jour ou supprimer les données associées dans la table de données.


Il existe de nombreuses méthodes d'implémentation pour stocker la relation de mappage entre le code

orienté objet et les tables et champs de la base de données. Une méthode possible consiste à stocker cette relation de mappage dans la classe de mappage de données par codage manuel.

Une alternative consiste à utiliser des tableaux PHP et à les encoder dans la classe elle-même. Cette classe peut également obtenir des données provenant de sources externes, telles que des fichiers INI ou XML.


Le mode de mappage d'objets de données mappe les objets et le stockage de données. Les opérations sur un objet seront mappées aux opérations sur le stockage de données.


Implémentez le mode de mappage d'objets de données dans le code et implémentez une classe ORM pour mapper des instructions SQL complexes en opérations d'attributs d'objet. Mappage relationnel objet (ORM)


table ha_cl

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");
}
}
Copier après la connexion

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;
}
}
Copier après la connexion

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];
}
}
Copier après la connexion

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();
Copier après la connexion
L'utilisation du

modèle d'usine créera l'objetHacl plusieurs fois, ce qui est un gaspillage de ressources si l'objet. est utilisé comme paramètre Passer, d'une part, entraînera des coûts d'utilisation supplémentaires, et d'autre part, si cet objet est utilisé à de nombreux endroits, des erreurs peuvent facilement se produire, donc le mode arbre d'enregistrement est utilisé en mode usine pour résoudre ce problème.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal