Properties

$dateTimeClass

$dateTimeClass : string

The class to use for representing date objects

This property can only be used before an instance of this type class is constructed. After that use useMutable() or useImmutable() instead.

Type

string

$_name

$_name : string|null

Identifier name for this type

Type

string|null

$setToDateStart

$setToDateStart : boolean

In this class we want Date objects to have their time set to the beginning of the day.

This is primarily to avoid subclasses needing to re-implement the same functionality.

Type

boolean

$_format

$_format : string|array

Date format for DateTime object

Type

string|array

$_useLocaleParser

$_useLocaleParser : boolean

Whether dates should be parsed using a locale aware parser when marshalling string inputs.

Type

boolean

$_localeFormat

$_localeFormat : string|array|integer

The date format to use for parsing incoming dates for marshalling.

Type

string|array|integer

$_datetimeInstance

$_datetimeInstance : \DateTime

An instance of the configured dateTimeClass, used to quickly generate new instances without calling the constructor.

Type

\DateTime

$_className

$_className : string

The classname to use when creating objects.

Type

string

$dbTimezone

$dbTimezone : \DateTimeZone|null

Timezone instance.

Type

\DateTimeZone|null

$_types

$_types : array<mixed,string>|array<mixed,\Cake\Database\Type>

List of supported database types. A human readable identifier is used as key and a complete namespaced class name as value representing the class that will do actual type conversions.

Type

array<mixed,string>|array<mixed,\Cake\Database\Type>

$_basicTypes

$_basicTypes : array

List of basic type mappings, used to avoid having to instantiate a class for doing conversion on these.

Type

array

$_builtTypes

$_builtTypes : array<mixed,\Cake\Database\Type>

Contains a map of type object instances to be reused if needed.

Type

array<mixed,\Cake\Database\Type>

Methods

__construct()

__construct(string|null  $name = null) 

Constructor

Parameters

string|null $name

The name identifying this type

toDatabase()

toDatabase(mixed  $value, \Cake\Database\Driver  $driver) : mixed

Casts given value from a PHP type to one acceptable by a database.

Parameters

mixed $value

Value to be converted to a database equivalent.

\Cake\Database\Driver $driver

Object from which database preferences and configuration will be extracted.

Returns

mixed —

Given PHP type casted to one acceptable by a database.

setTimezone()

setTimezone(string|\DateTimeZone|null  $timezone) : $this

Set database timezone.

Specified timezone will be set for DateTime objects before generating datetime string for saving to database. If null no timezone conversion will be done.

Parameters

string|\DateTimeZone|null $timezone

Database timezone.

Returns

$this

toPHP()

toPHP(mixed  $value, \Cake\Database\Driver  $driver) : mixed

Casts given value from a database type to PHP equivalent

Parameters

mixed $value

Value to be converted to PHP equivalent

\Cake\Database\Driver $driver

Object from which database preferences and configuration will be extracted

Returns

mixed

manyToPHP()

manyToPHP(array  $values, array  $fields, \Cake\Database\Driver  $driver) : array

Returns an array of the values converted to the PHP representation of this type.

Parameters

array $values

The original array of values containing the fields to be casted

array $fields

The field keys to cast

\Cake\Database\Driver $driver

Object from which database preferences and configuration will be extracted.

Returns

array

marshal()

marshal(mixed  $value) : \DateTimeInterface

Convert request data into a datetime object.

Most useful for converting request data into PHP objects, that make sense for the rest of the ORM/Database layers.

Parameters

mixed $value

Request data

Returns

\DateTimeInterface

useLocaleParser()

useLocaleParser(boolean  $enable = true) : $this

Sets whether or not to parse dates passed to the marshal() function by using a locale aware parser.

Parameters

boolean $enable

Whether or not to enable

Returns

$this

setLocaleFormat()

setLocaleFormat(string|array  $format) : $this

Sets the format string to use for parsing dates in this class. The formats that are accepted are documented in the `Cake\I18n\Time::parseDateTime()` function.

Parameters

string|array $format

The format in which the string are passed.

Returns

$this

useImmutable()

useImmutable() : $this

Change the preferred class name to the FrozenDate implementation.

Returns

$this

getDateTimeClassName()

getDateTimeClassName() : string

Get the classname used for building objects.

Returns

string

useMutable()

useMutable() : $this

Change the preferred class name to the mutable Date implementation.

Returns

$this

toStatement()

toStatement(mixed  $value, \Cake\Database\Driver  $driver) : mixed

Casts given value to its Statement equivalent.

Parameters

mixed $value

Value to be converted to PDO statement.

\Cake\Database\Driver $driver

Object from which database preferences and configuration will be extracted.

Returns

mixed —

Given value casted to its Statement equivalent.

build()

build(string  $name) : \Cake\Database\Type

Returns a Type object capable of converting a type identified by name.

Parameters

string $name

type identifier

Throws

\InvalidArgumentException

If type identifier is unknown

Returns

\Cake\Database\Type

buildAll()

buildAll() : array

Returns an arrays with all the mapped type objects, indexed by name.

Returns

array

set()

set(string  $name, \Cake\Database\Type  $instance) : void

Returns a Type object capable of converting a type identified by $name

Parameters

string $name

The type identifier you want to set.

\Cake\Database\Type $instance

The type instance you want to set.

map()

map(string|array<mixed,string>|array<mixed,\Cake\Database\Type>|null  $type = null, string|\Cake\Database\Type|null  $className = null) : array|string|null

Registers a new type identifier and maps it to a fully namespaced classname, If called with no arguments it will return current types map array If $className is omitted it will return mapped class for $type

Deprecated 3.6.2:

  • The usage of $type as string[]|\Cake\Database\Type[] is deprecated. Use Type::setMap() with string[] instead.
  • Passing $className as \Cake\Database\Type instance is deprecated, use class name string only.
  • Using this method as getter is deprecated. Use Type::getMap() instead.

Parameters

string|array<mixed,string>|array<mixed,\Cake\Database\Type>|null $type

If string name of type to map, if array list of arrays to be mapped

string|\Cake\Database\Type|null $className

The classname or object instance of it to register.

Returns

array|string|null —

If $type is null then array with current map, if $className is null string configured class name for give $type, null otherwise

setMap()

setMap(array<mixed,string>  $map) : void

Set type to classname mapping.

Parameters

array<mixed,string> $map

List of types to be mapped.

getMap()

getMap(string|null  $type = null) : array|string|\Cake\Database\TypeInterface|null

Get mapped class name or instance for type(s).

Parameters

string|null $type

Type name to get mapped class for or null to get map array.

Returns

array|string|\Cake\Database\TypeInterface|null —

Configured class name or instance for give $type or map array.

clear()

clear() : void

Clears out all created instances and mapped types classes, useful for testing

getName()

getName() : string

Returns type identifier name for this object.

Returns

string —

The type identifier name for this object.

getBaseType()

getBaseType() : string

Returns the base type name that this class is inheriting.

This is useful when extending base type for adding extra functionality, but still want the rest of the framework to use the same assumptions it would do about the base type it inherits from.

Returns

string —

The base type name that this class is inheriting.

boolval()

boolval(mixed  $value) : boolean

Type converter for boolean values.

Will convert string true/false into booleans.

Parameters

mixed $value

The value to convert to a boolean.

Returns

boolean

strval()

strval(mixed  $value) : string

Type converter for string values.

Will convert values into strings

Parameters

mixed $value

The value to convert to a string.

Returns

string

newId()

newId() : mixed

Generate a new primary key value for a given type.

This method can be used by types to create new primary key values when entities are inserted.

Returns

mixed —

A new primary key value.

__debugInfo()

__debugInfo() : array

Returns an array that can be used to describe the internal state of this object.

Returns

array

_compare()

_compare(\Cake\I18n\Time|\DateTime  $date, mixed  $value) : boolean

Parameters

\Cake\I18n\Time|\DateTime $date

DateTime object

mixed $value

Request data

Returns

boolean

_setClassName()

_setClassName(string  $class, string  $fallback) : void

Set the classname to use when building objects.

Parameters

string $class

The classname to use.

string $fallback

The classname to use when the preferred class does not exist.

_parseValue()

_parseValue(string  $value) : \Cake\I18n\Time|null

Converts a string into a DateTime object after parsing it using the locale aware parser with the specified format.

Parameters

string $value

The value to parse and convert to an object.

Returns

\Cake\I18n\Time|null

_basicTypeCast()

_basicTypeCast(mixed  $value) : mixed

Checks whether this type is a basic one and can be converted using a callback If it is, returns converted value

Parameters

mixed $value

Value to be converted to PHP equivalent

Returns

mixed