Esempio n. 1
0
 /**
  * Format all added parameters as described in the parameter definition (cast to string, truncate length)
  *
  * @param Dataset $dataset
  */
 public function formatParams(Dataset $dataset)
 {
     $paramDefinition = $this->getParamDefinition();
     foreach ($dataset as $key => $value) {
         $value = trim($value);
         is_numeric($value) && settype($value, 'string');
         if (isset($paramDefinition[$key])) {
             if ($this->getParamValueLength($value) > $paramDefinition[$key]['length']) {
                 $value = substr($value, 0, $paramDefinition[$key]['length']);
             }
         }
         if (isset($paramDefinition[$key]['mb_str_pad'])) {
             $value = StringHelper::mbStringPad($value, $paramDefinition[$key]['length'], isset($paramDefinition[$key]['padChar']) ? $paramDefinition[$key]['padChar'] : ' ', $paramDefinition[$key]['pad'], $this->getCharset());
         } elseif (isset($paramDefinition[$key]['format'])) {
             $value = sprintf($paramDefinition[$key]['format'], $value);
         }
         if ($this->getCharset() !== self::DEFAULT_CHARSET) {
             $value = iconv(self::DEFAULT_CHARSET, $this->getCharset() . '//TRANSLIT', $value);
         }
         $dataset->offsetSet($key, $value);
         // remove empty values
         if (!isset($value)) {
             $dataset->offsetUnset($key);
         }
     }
 }