/** * Mass loading of CExObjects * * @param self[] $list List of ExLinks * * @return void */ static function massLoadExObjects(array $list) { $ex_object_id_by_ex_class = array(); $ex_links_by_ex_class = array(); foreach ($list as $_link) { $_ex_class_id = $_link->ex_class_id; $ex_object_id_by_ex_class[$_ex_class_id][] = $_link->ex_object_id; $ex_links_by_ex_class[$_ex_class_id][] = $_link; } foreach ($ex_object_id_by_ex_class as $_ex_class_id => $_ex_object_ids) { $_ex_object = new CExObject($_ex_class_id); $where = array("ex_object_id" => $_ex_object->getDS()->prepareIn($_ex_object_ids)); $_ex_objects = $_ex_object->loadList($where); /** @var CExLink $_link */ foreach ($ex_links_by_ex_class[$_ex_class_id] as $_link) { $_link->_ref_ex_object = $_ex_objects[$_link->ex_object_id]; } } }