Какие функции нужны при создании ORM с PHP? [закрыто]
Я никогда по-настоящему не ценил ORM, так что я думаю, что единственный способ исправить это - самому создать базовый, чтобы я мог видеть, что же это за шум. Итак, с учетом этого, какие основные функции мне нужно будет включить для создания полуиспользуемого ORM?
Насколько я могу судить, для конечного программиста это должно было бы работать так:
/*
* Create a user
*/
$user = new User();
$user->name = 'Joe';
$user->email = '[email protected]';
$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)FindAll ($ где)спасти()Другие полезные функции могут быть такими:
Возможность запрашивать строки с определенным идентификаторомUser::find(34)
Возможность ограничить строки результатов с ГДЕ, как параметрыВозможность связать один объект строки со многими строками из другой таблицы. (От 1 до многих)Построение запроса так, чтобы SQL был написан автоматически.Может ли кто-нибудь еще сказать мне, что мне нужно. Я смотрел на некоторые из библиотек, какдоктрина, EZPDO, спальня, а такжеKohanaPHP но я не могу найти библиотеку, которую легко переварить, чтобы выяснить, каким должен быть список функций, чтобы заняться этим проектом.
Я нашелдетализация изображения некоторые предложения Рубина и немного больше информации оIgnitedRecord Проект.