ORM 对象关系映射
- 15年那时候 tp3.2, ci4.x, phalcon3.x , 现在 laravel … 只要是框架 基本提供ORM, 除非不操作数据库
- 为什么不写依据,sql查询,却能操作数据库?哈哈哈哈 来学 ORM
- 老规矩, 文字描述 + 伪代码
对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”。
- 面向对象是从软件工程基本原则(如耦合、聚合、封装)的基础上发展起来的,
- 而关系数据库则是从数学理论发展而来的,两套理论存在显著的区别。为了解决这个不匹配的现象,对象关系映射技术应运而生。
上ORM伪代码
<?php
// 概念: 描述如何创建提供透明访问任何数据源的对象。数据映射模式,也叫数据访问对象模式,或数据对象映射模式。
// 目的: 数据映射模式的目的是让持久化数据存储层、驻于内存的数据表现层、以及数据映射本身三者相互独立、互不依赖
// 将对象映射成数据字段, 通过操作对象,从而操作数据库的curd
// ORM, Object Reflect Mapping
// ORM类
namespace User;
class User {
public $id;
public $name;
public $mobile;
public $regtime;
protected $db;
public function __construct($id){
$this->db = new MySQL();
$this->db->connect('127.0.0.1','root','root','test');
$res = $this->db->query("select * from user limit 1");
$data = $res->fetch_assoc()
$this->id = $data['id'];
$this->name = $data['name'];
$this->mobile = $data['mobile'];
$this->regtime = $data['regtime'];
}
// 析构函数中默认更新数据库的方法
public function __destruct(){
$this->db->update("update user set name='{$this->name}' , mobile='{$this->mobile}' where id = '{$this->id}' ");
}
}
// 取出一条, 然后用修改对象属性的方式修改
$user = new User(1);
$user->mobile = '18733333333';
$user->regtime = '2021.04.9';
// 在实例化结束要进行销毁时候, 调用析构函数
// 复杂的ORM
// 使用工厂方法代替new
// 使用注册器模式在全局注册后使用
// 使用
理解设计模式主要是思路, 从面向对象的学习接触设计模式, 从设计模式深入理解面向对象。
组织代码的思路和可以使用的不同手段可以让你的代码优雅, 高内聚低耦合。
Author: Silvercell , 白嫖请素质三连, thank you ~
happy coding! 祝你编程越来越6,666,666,666.