LazyRecord\Inflator::inflate PHP Метод

inflate() публичный статический Метод

public static inflate ( $value, $isa = null )
    public static function inflate($value, $isa = null)
    {
        if ($value === null || $isa === null) {
            return $value;
        }
        /*
                if ($value instanceof Raw) {
           return $value->;
                }
        */
        if (isset(self::$inflators[$isa])) {
            $inflator = self::$inflators[$isa];
            if (is_callable($inflator)) {
                return call_user_func($inflator, $value);
            } elseif (class_exists($inflator, true)) {
                $d = new $inflator();
                return $d->inflate($value);
            }
        }
        switch ($isa) {
            case 'int':
                return (int) $value;
            case 'str':
                return (string) $value;
            case 'bool':
                if (is_string($value)) {
                    if (strcasecmp('false', $value) == 0 || $value == '0') {
                        return false;
                    } elseif (strcasecmp('true', $value) == 0 || $value == '1') {
                        return true;
                    } elseif ($value === '') {
                        return;
                    }
                }
                return $value ? true : false;
            case 'float':
                return floatval($value);
            case 'json':
                return json_decode($value);
            case 'DateTime':
                // already a DateTime object
                if ($value instanceof DateTime) {
                    return $value;
                }
                if (is_string($value)) {
                    return new DateTime($value);
                }
                return;
        }
        return $value;
    }

Usage Example

Пример #1
0
 public function inflate($value, $record)
 {
     if ($f = $this->get('inflator')) {
         return call_user_func($f, $value, $record);
     }
     // use global inflator
     return Inflator::inflate($value, $this->isa);
 }
All Usage Examples Of LazyRecord\Inflator::inflate