コード例 #1
0
ファイル: base.php プロジェクト: volodymyr-volynets/backend
 /**
  * Put data into cache
  *
  * @param string $cache_id
  * @param mixed $data
  * @param mixed $tags
  * @param int $expire
  * @return boolean
  */
 public function set($cache_id, $data, $tags = [], $expire = null)
 {
     if (!empty($tags)) {
         $tags = ' ' . implode(' ', array_fix($tags)) . ' ';
     } else {
         $tags = null;
     }
     // processing expire
     if (empty($expire)) {
         $expire = format::now('timestamp', ['add_seconds' => $this->options['expire']]);
     } else {
         $expire = format::read_date($expire, 'datetime');
     }
     // generating array for saving
     $save = ['sm_cache_id' => $cache_id . '', 'sm_cache_time' => format::now('timestamp'), 'sm_cache_expire' => $expire, 'sm_cache_data' => json_encode($data), 'sm_cache_tags' => $tags];
     $save_result = $this->model_cache->save($save);
     return $save_result['success'];
 }
コード例 #2
0
 /**
  * Process single type for column
  *
  * @param string $column_name
  * @param array $column_options
  * @param mixed $value
  * @return array
  */
 public static function process_single_column_type($column_name, $column_options, $value, $options = [])
 {
     $result = [];
     // processing as per different data types
     if ($column_options['type'] == 'boolean') {
         // booleans
         $result[$column_name] = !empty($value) ? 1 : 0;
     } else {
         if (in_array($column_options['type'], ['smallserial', 'serial', 'bigserial'])) {
             if (format::read_intval($value, ['valid_check' => 1])) {
                 $temp = format::read_intval($value);
                 if ($temp !== 0) {
                     $result[$column_name] = $temp;
                 }
             } else {
                 $result[$column_name . '_is_serial_error'] = true;
             }
             $result[$column_name . '_is_serial'] = true;
         } else {
             if (in_array($column_options['type'], ['smallint', 'integer', 'bigint'])) {
                 // integers
                 // if we got empty string we say its null
                 if (is_string($value) && $value === '') {
                     $value = null;
                 }
                 if (is_null($value)) {
                     if (!empty($column_options['null']) || !empty($options['ignore_defaults'])) {
                         $result[$column_name] = null;
                     } else {
                         $result[$column_name] = $column_options['default'] ?? 0;
                     }
                 } else {
                     $result[$column_name] = format::read_intval($value);
                 }
             } else {
                 if (in_array($column_options['type'], ['numeric', 'bcnumeric'])) {
                     // numerics as floats or strings
                     // if we got empty string we say its null
                     if (is_string($value) && $value == '') {
                         $value = null;
                     }
                     if (is_null($value)) {
                         if (!empty($column_options['null']) || !empty($options['ignore_defaults'])) {
                             $result[$column_name] = null;
                         } else {
                             $result[$column_name] = $column_options['default'] ?? ($column_options['type'] == 'bcnumeric' ? '0' : 0);
                         }
                     } else {
                         $result[$column_name] = format::read_floatval($value, ['bcnumeric' => $column_options['type'] == 'bcnumeric']);
                     }
                 } else {
                     if (in_array($column_options['type'], ['date', 'time', 'datetime', 'timestamp'])) {
                         $result[$column_name] = format::read_date($value, $column_options['type']);
                         // for datetime we do additional processing
                         if (!empty($options['process_datetime'])) {
                             $result[$column_name . '_strtotime_value'] = 0;
                             if (!empty($value)) {
                                 $result[$column_name . '_strtotime_value'] = strtotime($result[$column_name]);
                             }
                         }
                     } else {
                         if ($column_options['type'] == 'json') {
                             if (is_null($value)) {
                                 $result[$column_name] = null;
                             } else {
                                 if (is_array($value)) {
                                     $result[$column_name] = json_encode($value);
                                 } else {
                                     $result[$column_name] = (string) $value;
                                 }
                             }
                         } else {
                             if (is_null($value)) {
                                 $result[$column_name] = null;
                             } else {
                                 $result[$column_name] = (string) $value;
                             }
                         }
                     }
                 }
             }
         }
     }
     return $result;
 }