}
/**
+ * @deprecated
+ *
* @param array|string $entity_table
* @param int $entity_id1
* @param int $entity_id2
* @param string $data
*/
public static function setItem($entity_table = NULL, $entity_id1 = NULL, $entity_id2 = NULL, $cacheKey = NULL, $data = NULL) {
+ CRM_Core_Error::deprecatedFunctionWarning('Deprecated function');
// If entity table is an array we are passing in an older format where this function only had 1 param $values. We put a deprecation warning.
if (!empty($entity_table) && is_array($entity_table)) {
Civi::log()->warning('Deprecated code path. Values should not be set this is going away in the future in favour of specific function params for each column.', array('civi.tag' => 'deprecated'));
}
$mainContacts[] = $row = [
- 'dstID' => $dstID,
+ 'dstID' => (int) $dstID,
'dstName' => $displayNames[$dstID],
- 'srcID' => $srcID,
+ 'srcID' => (int) $srcID,
'srcName' => $displayNames[$srcID],
'weight' => $dupes[2],
'canMerge' => TRUE,
];
$data = CRM_Core_DAO::escapeString(serialize($row));
- CRM_Core_BAO_PrevNextCache::setItem('civicrm_contact', $dstID, $srcID, $cacheKeyString, $data);
+ CRM_Core_DAO::executeQuery("INSERT INTO civicrm_prevnext_cache (entity_table, entity_id1, entity_id2, cacheKey, data) VALUES
+ ('civicrm_contact', %1, %2, %3, '{$data}')", [
+ 1 => [$dstID, 'Integer'],
+ 2 => [$srcID, 'Integer'],
+ 3 => [$cacheKeyString, 'String'],
+ ]
+ );
}
return $mainContacts;
}
// store the updated stats
$data = [
- 'merged' => $merged,
- 'skipped' => $skipped,
+ 'merged' => (int) $merged,
+ 'skipped' => (int) $skipped,
];
- $data = CRM_Core_DAO::escapeString(serialize($data));
+ $data = serialize($data);
- CRM_Core_BAO_PrevNextCache::setItem('civicrm_contact', 0, 0, $cacheKeyString . '_stats', $data);
+ CRM_Core_DAO::executeQuery("INSERT INTO civicrm_prevnext_cache (entity_table, entity_id1, entity_id2, cacheKey, data) VALUES
+ ('civicrm_contact', 0, 0, %1, '{$data}')", [1 => [$cacheKeyString . '_stats', 'String']]);
}
/**
$this->quickCleanup(['civicrm_prevnext_cache']);
}
- public function testSetItem() {
- $cacheKeyString = 'TestCacheKeyString';
- $data = '1234afgbghh';
- $values = [];
- $values[] = " ( 'civicrm_contact', 0, 0, '{$cacheKeyString}_stats', '$data' ) ";
- $valueArray = CRM_Core_BAO_PrevNextCache::convertSetItemValues($values[0]);
- // verify as SetItem would do that it converts the original values style into a sensible array format
- $this->assertEquals(['civicrm_contact', 0, 0, 'TestCacheKeyString_stats', '1234afgbghh'], $valueArray);
- CRM_Core_BAO_PrevNextCache::setItem($valueArray[0], $valueArray[1], $valueArray[2], $valueArray[3], $valueArray[4]);
- $dao = new CRM_Core_BAO_PrevNextCache();
- $dao->cacheKey = 'TestCacheKeyString_stats';
- $dao->find(TRUE);
- $this->assertEquals('1234afgbghh', $dao->data);
- $this->assertEquals(0, $dao->entity_id1);
- $this->assertEquals(0, $dao->entity_id2);
- $this->assertEquals('civicrm_contact', $dao->entity_table);
- }
-
}