Code Duplication    Length = 11-13 lines in 3 locations

includes/classes/SnDbCachedOperator.php 3 locations

@@ 250-262 (lines=13) @@
247
    $id_field = static::$location_info[$location_type][P_ID];
248
    $table_name = static::$location_info[$location_type][P_TABLE_NAME];
249
    // TODO Как-то вернуть может быть LIMIT 1 ?
250
    if ($result = classSupernova::$db->doUpdate("UPDATE {{{$table_name}}} SET {$set} WHERE `{$id_field}` = {$record_id}")) {
251
      if (classSupernova::$db->db_affected_rows()) {
252
        // Обновляем данные только если ряд был затронут
253
        // TODO - переделать под работу со структурированными $set
254
255
        // Тут именно так, а не cache_unset - что бы в кэшах автоматически обновилась запись. Будет нужно на будущее
256
        //static::$data[$location_type][$record_id] = null;
257
        SnCache::cacheUnsetElement($location_type, $record_id);
258
        // Вытаскиваем обновленную запись
259
        static::db_get_record_by_id($location_type, $record_id);
260
        SnCache::cache_clear($location_type, false); // Мягкий сброс - только $queries
261
      }
262
    }
263
264
    return $result;
265
  }
@@ 302-312 (lines=11) @@
299
  public static function db_ins_record($location_type, $set) {
300
    $set = trim($set);
301
    $table_name = static::$location_info[$location_type][P_TABLE_NAME];
302
    if ($result = classSupernova::$db->doInsert("INSERT INTO `{{{$table_name}}}` SET {$set}")) {
303
      if (classSupernova::$db->db_affected_rows()) // Обновляем данные только если ряд был затронут
304
      {
305
        $record_id = classSupernova::$db->db_insert_id();
306
        // Вытаскиваем запись целиком, потому что в $set могли быть "данные по умолчанию"
307
        $result = static::db_get_record_by_id($location_type, $record_id);
308
        // Очищаем второстепенные кэши - потому что вставленная запись могла повлиять на результаты запросов или локация или еще чего
309
        // TODO - когда будет поддержка изменения индексов и локаций - можно будет вызывать её
310
        SnCache::cache_clear($location_type, false); // Мягкий сброс - только $queries
311
      }
312
    }
313
314
    return $result;
315
  }
@@ 325-335 (lines=11) @@
322
    $fields = implode(',', array_keys($field_set));
323
324
    $table_name = static::$location_info[$location_type][P_TABLE_NAME];
325
    if ($result = classSupernova::$db->doInsert("INSERT INTO `{{{$table_name}}}` ({$fields}) VALUES ({$values});")) {
326
      if (classSupernova::$db->db_affected_rows()) {
327
        // Обновляем данные только если ряд был затронут
328
        $record_id = classSupernova::$db->db_insert_id();
329
        // Вытаскиваем запись целиком, потому что в $set могли быть "данные по умолчанию"
330
        $result = static::db_get_record_by_id($location_type, $record_id);
331
        // Очищаем второстепенные кэши - потому что вставленная запись могла повлиять на результаты запросов или локация или еще чего
332
        // TODO - когда будет поддержка изменения индексов и локаций - можно будет вызывать её
333
        SnCache::cache_clear($location_type, false); // Мягкий сброс - только $queries
334
      }
335
    }
336
337
    return $result;
338
  }