Итак, я ищу простую ORM DBAL, которую я могу легко вставить и начать использовать. Желаемые возможности:
- Должен работать с существующей схемой базы данных. Желательно с минимальной дополнительной настройкой или без нее. Существующая схема базы данных имеет то же качество, что и существующий код PHP (нет разумных соглашений об именах, не нормализована и т. д.). Я не хочу тратить дни на преобразование схемы базы данных вручную в свойства аннотированных объектов в стиле Doctrine 2.
- Он должен работать вместе с существующими необработанными запросами mysql_*. Я понятия не имею, как ведут себя увлажняющие ORM, такие как Doctrine 2 или Propel, когда скрипты вручную манипулируют данными в базе данных за их спиной, но я предполагаю, что это некрасиво.
- Он должен работать на PHP. 5.2.х. Мне бы хотел использовать PHP 5.3, но мне совершенно неинтересно просматривать существующие 125 тысяч строк кода-спагетти, чтобы убедиться, что он работает на PHP 5.3.
- Отношения не обязательны. В тех немногих местах, где мне нужно получить реляционные данные, я буду рад вызвать дополнительный метод find() или query() или что-то еще самостоятельно.
- Бонусные баллы, если есть поддержка триггеров (например, beforeSave, afterSave). Это не обязательно, но приятно иметь.
- Должна быть возможность автоматически справляться с изменением схемы базы данных (например, добавлением столбцов).
В идеале хотелось бы чего-то простого. Например:
Код: Выделить всё
$user = User::find($id);
$user->name = 'John Woo';
$user->save();
Код: Выделить всё
$articles = ORM::find('article')->where('date' => '2010-01-01');
foreach ($articles as $article) {
echo $article->name;
}
Подробнее здесь: https://stackoverflow.com/questions/472 ... ng-php-app
Мобильная версия