Class TimeType

Time type converter.

Use to convert time instances to strings & back.

Namespace: Cake\Database\Type

Properties summary

  • $_basicTypes protected static
    array

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

  • $_builtTypes protected static
    \Cake\Database\Type[]

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

  • $_className protected
    string

    The classname to use when creating objects.

  • $_datetimeInstance protected
    \DateTime

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

  • $_format protected
    string|array

    Time format for DateTime object

  • $_localeFormat protected
    string|array|int

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

  • $_name protected
    string|null

    Identifier name for this type.

  • $_types protected static
    string[]|\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.

  • $_useLocaleParser protected
    bool

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

  • $dateTimeClass public static
    string

    The class to use for representing date objects

  • $dbTimezone protected
    \DateTimeZone|null

    Timezone instance.

  • $setToDateStart protected
    bool

    Whether or not we want to override the time of the converted Time objects so it points to the start of the day.

Method Summary

  • __construct() public

    Constructor

  • __debugInfo() public

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

  • _basicTypeCast() protected

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

  • _compare() protected
  • _parseValue() protected

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

  • _setClassName() protected

    Set the classname to use when building objects.

  • boolval() public static

    Type converter for boolean values.

  • build() public static

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

  • buildAll() public static

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

  • clear() public static

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

  • getBaseType() public

    Returns the base type name that this class is inheriting.

  • getDateTimeClassName() public

    Get the classname used for building objects.

  • getMap() public static

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

  • getName() public

    Returns type identifier name for this object.

  • manyToPHP() public

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

  • map() public static

    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

  • marshal() public

    Convert request data into a datetime object.

  • newId() public

    Generate a new primary key value for a given type.

  • set() public static

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

  • setLocaleFormat() public

    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.

  • setMap() public static

    Set type to classname mapping.

  • setTimezone() public

    Set database timezone.

  • strval() public static

    Type converter for string values.

  • toDatabase() public

    Convert DateTime instance into strings.

  • toPHP() public

    Convert strings into DateTime instances.

  • toStatement() public

    Casts given value to Statement equivalent

  • useImmutable() public

    Change the preferred class name to the FrozenTime implementation.

  • useLocaleParser() public

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

  • useMutable() public

    Change the preferred class name to the mutable Time implementation.

Method Detail

__construct() public

__construct(mixed $name)

Constructor

Parameters

string|null $name optional

The name identifying this type

__debugInfo() public

__debugInfo()

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

Returns

array

_basicTypeCast() protected

_basicTypeCast(mixed $value)

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

_compare() protected

_compare(mixed $date, mixed $value)

Parameters

\Cake\I18n\Time|\DateTime $date

DateTime object

mixed $value

Request data

Returns

bool

_parseValue() protected

_parseValue(mixed $value)

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

_setClassName() protected

_setClassName(mixed $class, mixed $fallback)

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.

boolval() public static

boolval(mixed $value)

Type converter for boolean values.

Will convert string true/false into booleans.

Parameters

mixed $value

The value to convert to a boolean.

Returns

bool

build() public static

build(mixed $name)

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

Parameters

string $name

type identifier

Returns

\Cake\Database\Type

Throws

InvalidArgumentException
If type identifier is unknown

buildAll() public static

buildAll()

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

Returns

array

clear() public static

clear()

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

getBaseType() public

getBaseType()

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.

getDateTimeClassName() public

getDateTimeClassName()

Get the classname used for building objects.

Returns

string

getMap() public static

getMap(mixed $type)

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

Parameters

string|null $type optional

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.

getName() public

getName()

Returns type identifier name for this object.

Returns

string

The type identifier name for this object.

manyToPHP() public

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

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

string[] $fields

The field keys to cast

\Cake\Database\Driver $driver

Object from which database preferences and configuration will be extracted.

Returns

array

map() public static

map(mixed $type, mixed $className)

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|string[]|\Cake\Database\Type[]|null $type optional

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

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

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

marshal() public

marshal(mixed $value)

Convert request data into a datetime object.

Parameters

mixed $value

Request data

Returns

\DateTimeInterface|null

newId() public

newId()

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.

See Also

\Cake\Database\Type\UuidType

set() public static

set(mixed $name, \Cake\Database\Type $instance)

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.

setLocaleFormat() public

setLocaleFormat(mixed $format)

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

See Also

\Cake\I18n\Time::parseDateTime()

setMap() public static

setMap(array $map)

Set type to classname mapping.

Parameters

string[] $map

List of types to be mapped.

setTimezone() public

setTimezone(mixed $timezone)

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

strval() public static

strval(mixed $value)

Type converter for string values.

Will convert values into strings

Parameters

mixed $value

The value to convert to a string.

Returns

string

toDatabase() public

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

Convert DateTime instance into strings.

Parameters

string|int|\DateTime|\DateTimeImmutable $value

The value to convert.

\Cake\Database\Driver $driver

The driver instance to convert with.

Returns

string|null

toPHP() public

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

Convert strings into DateTime instances.

Parameters

string $value

The value to convert.

\Cake\Database\Driver $driver

The driver instance to convert with.

Returns

\Cake\I18n\Time|\DateTime|null

toStatement() public

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

Casts given value to 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

useImmutable() public

useImmutable()

Change the preferred class name to the FrozenTime implementation.

Returns

$this

useLocaleParser() public

useLocaleParser(mixed $enable)

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

Parameters

bool $enable optional

Whether or not to enable

Returns

$this

useMutable() public

useMutable()

Change the preferred class name to the mutable Time implementation.

Returns

$this

Property Detail

$_basicTypes protected static

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

Type

array

$_builtTypes protected static

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

Type

\Cake\Database\Type[]

$_className protected

The classname to use when creating objects.

Type

string

$_datetimeInstance protected

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

Type

\DateTime

$_format protected

Time format for DateTime object

Type

string|array

$_localeFormat protected

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

Type

string|array|int

$_name protected

Identifier name for this type.

(This property is declared here again so that the inheritance from Cake\Database\Type can be removed in the future.)

Type

string|null

$_types protected static

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

string[]|\Cake\Database\Type[]

$_useLocaleParser protected

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

Type

bool

$dateTimeClass public static

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

$dbTimezone protected

Timezone instance.

Type

\DateTimeZone|null

$setToDateStart protected

Whether or not we want to override the time of the converted Time objects so it points to the start of the day.

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

Type

bool

© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/3.9/class-Cake.Database.Type.TimeType.html