php - 使用 PHP 构建 ORM 时需要的功能?

标签 php orm

<分区>

我从来没有真正欣赏过 ORM,所以我认为解决这个问题的唯一方法是自己构建一个基本的 ORM,这样我就可以看到所有的喧嚣。因此,考虑到这一点,我需要包含哪些基本功能才能制作半可用的 ORM?

据我所知,对于最终程序员来说,它基本上需要像这样工作:

/*
 * Create a user
 */
$user = new User();
$user->name = 'Joe';
$user->email = 'joe@aol.com';
$user->save();
unset($user);

/*
 * Create a game
 */
$game = new Game();
$game->name = 'soccer';
$game->save();

/*
 * Set all users as players
 */
$users = ORM::factory('users');
$users = $users->findAll();
foreach ( $users as $user ) {
    $user->setGame($game);
    $user->save();
}
unset($users);

/*
 * Get all games and show all users
 */
$games = ORM::factory('games')->findAll();
foreach( $games as $game ) {
    print $game->name;
    print 'Users in game:';
    foreach( $game->users as $user ) {
        print $user->name;
    }
}

每个模型类都将扩展 ORM 类,该类将具有所有基本方法

  • 查找($id)
  • 查找全部($在哪里)
  • 保存()

其他有用的功能包括:

  • 能够请求具有特定 id 的行 User::find(34)
  • 能够使用类似 WHERE 的选项限制结果行数
  • 能够将一个行对象与另一个表中的许多行相关联。 (1 对多)
  • 构建查询以便自动编写 SQL。

谁能告诉我我需要什么。我一直在查看一些库,例如 Doctrine , EZPDO , dORM , 和 KohanaPHP但我似乎找不到一个易于理解的库来弄清楚解决这个项目需要什么功能列表。

我找到了一个 image detailing ruby 的一些产品和更多关于 IgnitedRecord 的信息项目。

最佳答案

这是 ORM 应该具有的基本和扩展功能的列表: http://madgeek.com/Articles/ORMapping/EN/mapping.htm

关于php - 使用 PHP 构建 ORM 时需要的功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1664932/

相关文章:

python - 如何使用 Django ORM 在约会表中查找可用时间段?

php - 在 PHP 中编码 Amazon Flexible Payments secret 字符串的问题

xml - hibernate 使用注解或者使用 hibernate 配置文件

Django ORM : filter using a list of objects with an 'and' functionality

php - 将 PHP-MySQL Web 应用程序转换为桌面应用程序 (exe)

java - 什么时候应该在 JPA 中使用 @JoinColumn 或 @JoinTable?

android - DBFlow 一对多示例

php - 我在带有 PHP 7 的 Ubuntu 16 上安装了 cURL,但我仍然调用未定义的函数 curl_init()

php-bcmath 错误 - 扩展未在 php7 中加载

php - digg(或其他高负载类别网站)如何存储用户 session ?