📅  最后修改于: 2023-12-03 14:54:48.148000             🧑  作者: Mango
ORM (Object-Relational Mapping) 是一种将关系型数据库与对象导向的编程语言之间的关系映射进行转换的技术。ORM让开发者能够使用对象模型来操作数据库,而不用直接使用 SQL。
使用 ORM 可以使开发者更加专注于业务逻辑的实现,减少与数据库的直接交互,简化开发流程;同时,ORM 也可以提供更好的性能、更好的安全性。
Laravel 是 PHP 的一个流行的 Web 开发框架,它自带了一个 ORM 框架 Eloquent。Eloquent 支持多种数据库,包括 MySQL、PostgreSQL、SQLite、SQL Server 和 Oracle 等,同时提供了很多方便的 API,如查询构建器、模型关联、数据库迁移等。
<?php
// 定义 User 模型
class User extends Illuminate\Database\Eloquent\Model
{
// 模型对应的表名
protected $table = 'users';
// 模型对应的主键
protected $primaryKey = 'id';
}
// 查询所有用户
$users = User::all();
// 查询 ID 为 1 的用户
$user = User::find(1);
// 创建新用户
$user = new User();
$user->name = 'John';
$user->email = 'john@example.com';
$user->save();
// 更新用户信息
$user = User::find(1);
$user->name = 'Tom';
$user->save();
// 删除用户
$user = User::find(1);
$user->delete();
Doctrine 是另一个流行的 PHP ORM 框架,它支持多种数据库,包括 MySQL、PostgreSQL、SQLite、Oracle 等。Doctrine 还提供了多种必要的特性,比如查询构建器、模型关联、数据迁移、缓存等。
<?php
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="users")
*/
class User
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
protected $id;
/**
* @ORM\Column(type="string")
*/
protected $name;
/**
* @ORM\Column(type="string", unique=true)
*/
protected $email;
}
// 查询所有用户
$users = $entityManager->getRepository('User')->findAll();
// 查询 ID 为 1 的用户
$user = $entityManager->getRepository('User')->find(1);
// 创建新用户
$user = new User();
$user->setName('John');
$user->setEmail('john@example.com');
$entityManager->persist($user);
$entityManager->flush();
// 更新用户信息
$user = $entityManager->getRepository('User')->find(1);
$user->setName('Tom');
$entityManager->flush();
// 删除用户
$user = $entityManager->getRepository('User')->find(1);
$entityManager->remove($user);
$entityManager->flush();
ORM 让开发者更加关注业务逻辑开发,同时也能够提高性能、安全性等多个方面。PHP 中常用的 ORM 框架有 Laravel Eloquent 和 Doctrine 等,开发者可以根据自己的需求进行选择。