当前位置:首页 > PHP

orm php 实现

2026-03-12 17:50:30PHP

ORM(对象关系映射)在 PHP 中的实现

PHP 中实现 ORM 主要通过第三方库或框架完成,以下是常见的实现方式及工具:

使用 Doctrine ORM

Doctrine 是 PHP 中最流行的 ORM 库之一,支持数据库抽象层(DBAL)和完整的 ORM 功能。

安装 Doctrine ORM:

composer require doctrine/orm

配置实体类(以 Product 为例):

use Doctrine\ORM\Mapping as ORM;

#[ORM\Entity]
#[ORM\Table(name: 'products')]
class Product
{
    #[ORM\Id]
    #[ORM\GeneratedValue]
    #[ORM\Column(type: 'integer')]
    private $id;

    #[ORM\Column(type: 'string')]
    private $name;

    // Getter 和 Setter 方法
}

数据库操作示例:

$entityManager = EntityManager::create($conn, $config);

// 插入数据
$product = new Product();
$product->setName('Example');
$entityManager->persist($product);
$entityManager->flush();

// 查询数据
$repository = $entityManager->getRepository(Product::class);
$products = $repository->findAll();

使用 Eloquent ORM(Laravel 框架)

Eloquent 是 Laravel 内置的 ORM,语法简洁且功能强大。

orm php 实现

定义模型:

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Product extends Model
{
    protected $table = 'products';
    protected $fillable = ['name'];
}

基本操作:

// 创建记录
$product = Product::create(['name' => 'Example']);

// 查询记录
$products = Product::where('name', 'Example')->get();

// 更新记录
$product->update(['name' => 'New Name']);

使用 Propel ORM

Propel 是另一个高性能的 PHP ORM 工具,支持代码生成。

orm php 实现

安装 Propel:

composer require propel/propel

生成模型:

vendor/bin/propel model:build

使用示例:

$product = new Product();
$product->setName('Example');
$product->save();

$products = ProductQuery::create()
    ->filterByName('Example')
    ->find();

自定义简单 ORM 实现

如需轻量级实现,可通过 PDO 封装基础 ORM 功能:

class SimpleORM
{
    protected $pdo;
    protected $table;

    public function __construct(\PDO $pdo, string $table)
    {
        $this->pdo = $pdo;
        $this->table = $table;
    }

    public function find(int $id): ?array
    {
        $stmt = $this->pdo->prepare("SELECT * FROM {$this->table} WHERE id = ?");
        $stmt->execute([$id]);
        return $stmt->fetch(\PDO::FETCH_ASSOC) ?: null;
    }
}

选择建议

  • 复杂项目:优先选择 Doctrine 或 Eloquent(Laravel 生态)
  • 快速开发:Eloquent 集成度最高
  • 性能敏感场景:Propel 或自定义轻量级实现
  • 学习成本:Eloquent 最简单,Doctrine 功能最全

所有方案均需结合 Composer 进行依赖管理,并通过数据库迁移工具(如 Doctrine Migrations 或 Laravel Migrations)维护表结构。

标签: ormphp
分享给朋友:

相关文章

php实现递归

php实现递归

递归的基本概念 递归是一种函数调用自身的技术,适用于解决可以分解为相同子问题的问题。在PHP中,递归需要明确的终止条件(基线条件),否则会导致无限循环。 递归实现阶乘 阶乘是经典的递归案例,n! =…

php 实现自动收货

php 实现自动收货

PHP 实现自动收货功能 自动收货功能通常用于电商系统,在订单超过一定时间未手动确认收货时自动完成订单。以下是实现方法: 数据库设计 需要订单表包含以下关键字段: CREATE TABLE…

php 实现登录

php 实现登录

PHP 登录功能实现 使用 PHP 实现登录功能通常需要结合数据库验证和会话管理。以下是一个基本的登录实现流程: 数据库准备 创建用户表存储用户名和密码(建议使用哈希加密): CREATE TAB…

php 实现购物车

php 实现购物车

PHP 实现购物车功能 购物车功能是电子商务网站的核心部分,可以通过 PHP 和 Session 或数据库来实现。以下是两种常见的实现方式: 使用 Session 存储购物车数据 Sessi…

php验证码的实现

php验证码的实现

PHP 验证码实现方法 使用 GD 库生成基础验证码 创建画布并生成随机字符串作为验证码内容: session_start(); $width = 120; $height = 40; $image…

php实现的进度条

php实现的进度条

PHP 实现的进度条方法 在 PHP 中实现进度条通常可以通过命令行脚本(CLI)或 Web 页面两种方式完成。以下是几种常见的实现方法: 命令行进度条 使用 PHP CLI 实现进度条,可以通过不…