当前位置:首页 > 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记住密码怎么实现

使用Cookie实现记住密码功能 在PHP中,可以通过设置Cookie来记住用户的登录状态。以下是一个简单的实现方式: // 用户登录验证成功后 if ($login_success) {…

php实现上传

php实现上传

PHP 文件上传实现 HTML 表单设置 创建一个包含文件上传字段的 HTML 表单,确保表单的 enctype 属性设置为 multipart/form-data,这是文件上传必需的设置。 <…

php实现推送

php实现推送

PHP 实现推送功能的方法 PHP 实现推送功能可以通过多种方式完成,包括 WebSocket、Server-Sent Events (SSE)、长轮询或第三方推送服务。以下是几种常见的方法: 使用…

php实现下载

php实现下载

PHP实现文件下载 使用PHP实现文件下载可以通过设置HTTP头部信息强制浏览器下载文件而非直接打开。以下是几种常见的方法: 方法一:直接输出文件内容 $file_path = 'path/to/…

php 实现类

php 实现类

PHP 类的基本实现 在 PHP 中,类通过 class 关键字定义,后跟类名和一对花括号。类名通常遵循大驼峰命名法(如 ClassName)。以下是基本语法: class ClassName {…

php数据库实现

php数据库实现

PHP 连接 MySQL 数据库 使用 mysqli 扩展连接 MySQL 数据库: <?php $servername = "localhost"; $username = "usernam…