class JsonArrayType extends JsonArrayType (View source)

Extends the default doctrine JsonArrayType to work with entities.

TODO: If doctrine supports a Postgres 9.4 platform we could default to jsonb.

Constants

FLOW_JSON_ARRAY

Properties

protected PersistenceManagerInterface $persistenceManager
protected ReflectionService $reflectionService

Methods

string
getName()

Gets the name of this type.

int
getBindingType()

Gets the (preferred) binding type for values of this type that can be used when binding parameters to prepared statements.

string
getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform)

Use jsonb for PostgreSQL, this means we require PostgreSQL 9.4

array
getMappedDatabaseTypes(AbstractPlatform $platform)

We map jsonb fields to our datatype by default. Doctrine doesn't use jsonb at all.

array
convertToPHPValue(mixed $value, AbstractPlatform $platform)

Converts a value from its database representation to its PHP representation of this type.

mixed
convertToDatabaseValue(mixed $array, AbstractPlatform $platform)

Converts a value from its PHP representation to its database representation of this type.

void
initializeDependencies()

Fetches dependencies from the static object manager.

void
decodeObjectReferences(array $array)

Traverses the $array and replaces known persisted objects (tuples of type and identifier) with actual instances.

void
encodeObjectReferences(array $array)

Traverses the $array and replaces known persisted objects with a tuple of type and identifier.

bool
requiresSQLCommentHint(AbstractPlatform $platform)

We require a comment on the column to make doctrine recognize the type on already existing columns

Details

string getName()

Gets the name of this type.

Return Value

string

int getBindingType()

Gets the (preferred) binding type for values of this type that can be used when binding parameters to prepared statements.

Return Value

int

string getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform)

Use jsonb for PostgreSQL, this means we require PostgreSQL 9.4

Parameters

array $fieldDeclaration

The field declaration

AbstractPlatform $platform

The currently used database platform

Return Value

string

array getMappedDatabaseTypes(AbstractPlatform $platform)

We map jsonb fields to our datatype by default. Doctrine doesn't use jsonb at all.

Parameters

AbstractPlatform $platform

Return Value

array

array convertToPHPValue(mixed $value, AbstractPlatform $platform)

Converts a value from its database representation to its PHP representation of this type.

Parameters

mixed $value

The value to convert.

AbstractPlatform $platform

The currently used database platform.

Return Value

array

The PHP representation of the value.

mixed convertToDatabaseValue(mixed $array, AbstractPlatform $platform)

Converts a value from its PHP representation to its database representation of this type.

Parameters

mixed $array

The value to convert.

AbstractPlatform $platform

The currently used database platform.

Return Value

mixed

The database representation of the value.

protected void initializeDependencies()

Fetches dependencies from the static object manager.

Injection cannot be used, since __construct on Types\Type is final.

Return Value

void

protected void decodeObjectReferences(array $array)

Traverses the $array and replaces known persisted objects (tuples of type and identifier) with actual instances.

Parameters

array $array

Return Value

void

protected void encodeObjectReferences(array $array)

Traverses the $array and replaces known persisted objects with a tuple of type and identifier.

Parameters

array $array

Return Value

void

Exceptions

RuntimeException

bool requiresSQLCommentHint(AbstractPlatform $platform)

We require a comment on the column to make doctrine recognize the type on already existing columns

Parameters

AbstractPlatform $platform

Return Value

bool