BigQuery/src/ValueMapper.php
public function fromBigQuery(array $value, array $schema)
    {
        $value = $value['v'];

        if (isset($schema['mode'])) {
            if ($schema['mode'] === 'REPEATED') {
                return $this->repeatedValueFromBigQuery($value, $schema);
            }

            if ($schema['mode'] === 'NULLABLE' && $value === null) {
                return $value;
            }
        }

        switch ($schema['type']) {
            case self::TYPE_BOOLEAN:
                return $value === 'true';
            case self::TYPE_INTEGER:
                return $this->returnInt64AsObject
                    ? new Int64($value)
                    : (int) $value;
            case self::TYPE_FLOAT:
                return (float) $value;
            case self::TYPE_NUMERIC:
                return new Numeric($value);
            case self::TYPE_STRING:
                return (string) $value;
            case self::TYPE_BYTES:
                return new Bytes(base64_decode($value));
            case self::TYPE_DATE:
                return new Date(new \DateTime($value));
            case self::TYPE_DATETIME:
                return new \DateTime($value);
            case self::TYPE_TIME:
                return new Time(new \DateTime($value));
            case self::TYPE_TIMESTAMP:
                return $this->timestampFromBigQuery($value);
            case self::TYPE_RECORD:
                return $this->recordFromBigQuery($value, $schema['fields']);
            default:
                throw new \InvalidArgumentException(sprintf(
                    'Unrecognized value type %s. Please ensure you are using the latest version of google/cloud.',
                    $schema['type']
                ));

                break;
        }
    }
public function fromBigQuery(array $value, array $schema)
    {
        $value = $value['v'];

        if (isset($schema['mode'])) {
            if ($schema['mode'] === 'REPEATED') {
                return $this->repeatedValueFromBigQuery($value, $schema);
            }

            if ($schema['mode'] === 'NULLABLE' && $value === null) {
                return $value;
            }
        }

        switch ($schema['type']) {
            case self::TYPE_BOOLEAN:
                return $value === 'true';
            case self::TYPE_INTEGER:
                return $this->returnInt64AsObject
                    ? new Int64($value)
                    : (int) $value;
            case self::TYPE_FLOAT:
                return (float) $value;
            case self::TYPE_NUMERIC:
                return new Numeric($value);
            case self::TYPE_STRING:
                return (string) $value;
            case self::TYPE_BYTES:
                return new Bytes(base64_decode($value));
            case self::TYPE_DATE:
                return new Date(new \DateTime($value));
            case self::TYPE_DATETIME:
                return new \DateTime($value);
            case self::TYPE_TIME:
                return new Time(new \DateTime($value));
            case self::TYPE_TIMESTAMP:
                return $this->timestampFromBigQuery($value);
            case self::TYPE_RECORD:
                return $this->recordFromBigQuery($value, $schema['fields']);
            default:
                throw new \InvalidArgumentException(sprintf(
                    'Unrecognized value type %s. Please ensure you are using the latest version of google/cloud.',
                    $schema['type']
                ));

                break;
        }
    }
public function fromBigQuery ( array $ value , array $ schema ) { $ value = $ value [ 'v' ] ; if ( isset ( $ schema [ 'mode' ] ) ) { if ( $ schema [ 'mode' ] === 'REPEATED' ) { return $ this -> repeatedValueFromBigQuery ( $ value , $ schema ) ; } if ( $ schema [ 'mode' ] === 'NULLABLE' && $ value === null ) { return $ value ; } } switch ( $ schema [ 'type' ] ) { case self :: TYPE_BOOLEAN : return $ value === 'true' ; case self :: TYPE_INTEGER : return $ this -> returnInt64AsObject ? new Int64 ( $ value ) : ( int ) $ value ; case self :: TYPE_FLOAT : return ( float ) $ value ; case self :: TYPE_NUMERIC : return new Numeric ( $ value ) ; case self :: TYPE_STRING : return ( string ) $ value ; case self :: TYPE_BYTES : return new Bytes ( base64_decode ( $ value ) ) ; case self :: TYPE_DATE : return new Date ( new \ DateTime ( $ value ) ) ; case self :: TYPE_DATETIME : return new \ DateTime ( $ value ) ; case self :: TYPE_TIME : return new Time ( new \ DateTime ( $ value ) ) ; case self :: TYPE_TIMESTAMP : return $ this -> timestampFromBigQuery ( $ value ) ; case self :: TYPE_RECORD : return $ this -> recordFromBigQuery ( $ value , $ schema [ 'fields' ] ) ; default : throw new \ InvalidArgumentException ( sprintf ( 'Unrecognized value type %s. Please ensure you are using the latest version of google/cloud.' , $ schema [ 'type' ] ) ) ; break ; } }
Maps a value coming from BigQuery to the expected format for use in the
library.

@param array $value The value to map.
@param array $schema The schema describing the value.
@throws \InvalidArgumentException
Maps a value coming from BigQuery to the expected format for use in the library .