Какие функции нужны при создании 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 Проект.

Ответы на вопрос(2)

Ваш ответ на вопрос