LazyRecord\Deflator::deflate PHP Method

deflate() public static method

public static deflate ( $value, $isa, BaseDriver $driver = null )
$driver SQLBuilder\Driver\BaseDriver
    public static function deflate($value, $isa, BaseDriver $driver = null)
    {
        switch ($isa) {
            case 'int':
                return (int) $value;
            case 'str':
                return (string) $value;
            case 'double':
                return (double) $value;
            case 'float':
                return floatval($value);
            case 'json':
                return json_encode($value);
            case 'bool':
                // Convert string into bool
                if (is_string($value)) {
                    if ($value === '' || $value === '0' || strncasecmp($value, 'false', 5) == 0) {
                        $value = false;
                    } elseif ($value === '1' || strncasecmp($value, 'true', 4) == 0) {
                        $value = true;
                    }
                }
                if ($driver) {
                    return $driver->deflate($value);
                }
                return (bool) $value ? 1 : 0;
        }
        if ($value instanceof DateTime) {
            if ($driver instanceof PDOMySQLDriver) {
                return $value->format('Y-m-d H:i:s');
            }
            return $value->format(DateTime::ATOM);
        }
        /* respect the data type to inflate value */
        return $value;
    }

Usage Example

Beispiel #1
0
 /** 
  * deflate value.
  *
  * @param mixed $value
  **/
 public function deflate($value, BaseDriver $driver = null)
 {
     // run column specified deflator
     if ($f = $this->get('deflator')) {
         return call_user_func($f, $value);
     }
     // use global deflator, check self type, and do type casting
     return Deflator::deflate($value, $this->isa, $driver);
 }
Deflator