<分区>
我从来没有真正欣赏过 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 的信息项目。