Добрый день!
Возникла задача работать с двумя независимыми базами с одного ядра битрикс.
Есть огромное желание использовать ORM в этой задаче.
Нагуглил информацию, что в битриксе присутствует такая вещь, как:
А в DataManager такая:
И уже хотел обрадоваться. Но не тут-то было.
Просмотрев основные классы main/lib/entity/datamanager.php и main/lib/entity/query.php, пришёл к выводу, что для работы с несколькими connections они не рассчитаны. И это при том, что, по сути, всё уже готово для такого использования! Просто, везде где речь идет о коннекте, я с грустью встречал:
Везде и всюду дефолт...
Единственное, что получилось сделать - query select вот таким образом:
Add, delete, update отправить на второй коннект возможности нет. Или я что-то не правильно понял.
Короче вопрос - планируется ли в orm поддержка много-коннектовости, или она уже есть, только мне с другой стороны подойти надо к ней.
И еще, если я написал этот пост не в том месте - подскажите, где его надо разместить.
Возникла задача работать с двумя независимыми базами с одного ядра битрикс.
Есть огромное желание использовать ORM в этой задаче.
Нагуглил информацию, что в битриксе присутствует такая вещь, как:
Main\Application::getInstance()->getConnectionPool()->getConnection("second");
|
public static function getConnectionName()
{
return 'default';
} |
Просмотрев основные классы main/lib/entity/datamanager.php и main/lib/entity/query.php, пришёл к выводу, что для работы с несколькими connections они не рассчитаны. И это при том, что, по сути, всё уже готово для такого использования! Просто, везде где речь идет о коннекте, я с грустью встречал:
$connection = Main\Application::getConnection(); |
Единственное, что получилось сделать - query select вот таким образом:
$query = SomeTable::query();
$query
->setSelect(array("ID"))
->setLimit(10);
$connection = Main\Application::getInstance()->getConnectionPool()->getConnection("second");
$result = $connection->query($query->getQuery()); |
Короче вопрос - планируется ли в orm поддержка много-коннектовости, или она уже есть, только мне с другой стороны подойти надо к ней.
И еще, если я написал этот пост не в том месте - подскажите, где его надо разместить.