[QUOTE]
Андрей Сёмин написал:
А вообще D7 несколько богаче, чем ORM.[/QUOTE]
На самом деле нет. В Bitrix это DataManager или Row-access. По сути Вы оперируете не объектами, а данными (строкой таблицы), а ORM подразумевает набор данный и методы для работы с ними.
Например, для получения и изменения пользователя (пример ORM):[QUOTE]
try {
$user = Users::loadById(65);
$user->name = 'Петр';
$user->save();
} catch ( SomeUserException $e ) {
var_dump($e->getErrorMessages() );
} [/QUOTE]
В битриксе (сохраняю имена чтобы было понятно):
[QUOTE]$arUser = UserTable::getRow([
'filter' => [ 'ID' => 65 ],
'select' => ['NAME']
]);
if ( !empty($arUser) ) {
$arFields = [
'NAME' => 'Петр'
];
$res = UserTable::Update(65, $arFields);
if ( !res->isSuccess() ) {
var_dump($res->getErrorMessages() );
}
}[/QUOTE]
Сравните объемы кода в первом случае и во втором.
Но тут обратная сторона - например такой вариант отработает быстрее, чем объектный. Кстати, такой подход используется в Zend Framework 3 (при работе с БД, очень напоминает ту же концепцию)