php orm实现
PHP ORM 实现方法
PHP 中实现 ORM(对象关系映射)可以通过多种方式,包括使用现成的 ORM 库或自行实现简单的 ORM 功能。以下是几种常见的方法:
使用现有 ORM 库
-
Doctrine ORM
Doctrine 是 PHP 中最流行的 ORM 库之一,支持复杂的数据库操作和对象映射。
安装 Doctrine:composer require doctrine/orm配置示例:
use Doctrine\ORM\Tools\Setup; use Doctrine\ORM\EntityManager; $paths = [__DIR__ . "/src"]; $isDevMode = true; $dbParams = [ 'driver' => 'pdo_mysql', 'user' => 'root', 'password' => '', 'dbname' => 'test_db', ]; $config = Setup::createAnnotationMetadataConfiguration($paths, $isDevMode); $entityManager = EntityManager::create($dbParams, $config); -
Eloquent ORM(Laravel 内置)
Eloquent 是 Laravel 框架的默认 ORM,语法简洁易用。
定义模型:namespace App\Models; use Illuminate\Database\Eloquent\Model; class User extends Model { protected $table = 'users'; }查询示例:
$users = User::where('active', 1)->get();
自行实现简单 ORM
-
基础 ORM 类
创建一个基类,封装常见的 CRUD 操作。abstract class BaseModel { protected $table; protected $db; public function __construct(\PDO $db) { $this->db = $db; } public function find($id) { $stmt = $this->db->prepare("SELECT * FROM {$this->table} WHERE id = ?"); $stmt->execute([$id]); return $stmt->fetch(\PDO::FETCH_ASSOC); } public function save(array $data) { // 实现插入或更新逻辑 } } -
使用 PDO 扩展
通过 PDO 实现数据库操作,结合对象映射。class User { private $pdo; public function __construct(\PDO $pdo) { $this->pdo = $pdo; } public function getAll() { $stmt = $this->pdo->query("SELECT * FROM users"); return $stmt->fetchAll(\PDO::FETCH_OBJ); } }
性能优化建议
- 使用连接池管理数据库连接。
- 缓存频繁查询的结果。
- 避免 N+1 查询问题,使用关联预加载(如 Eloquent 的
with方法)。
以上方法可以根据项目需求选择,复杂场景推荐使用成熟的 ORM 库(如 Doctrine 或 Eloquent),轻量级需求可自行实现简化版本。







