Class TimeType
Time type converter.
Use to convert time instances to strings & back.
Property Summary
-
$_basicTypes protected static deprecated
arrayList 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
stringThe classname to use when creating objects.
-
$_datetimeInstance protected
DateTimeAn instance of the configured dateTimeClass, used to quickly generate new instances without calling the constructor.
-
$_format protected
string|arrayTime format for DateTime object
-
$_localeFormat protected
string|array|intThe date format to use for parsing incoming dates for marshalling.
-
$_name protected
string|nullIdentifier 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
boolWhether dates should be parsed using a locale aware parser when marshalling string inputs.
-
$dateTimeClass public static deprecated
stringThe class to use for representing date objects
-
$dbTimezone protected
DateTimeZone|nullTimezone instance.
-
$setToDateStart protected
boolWhether 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 deprecated
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 deprecated
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 deprecated
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(string|null $name = null)
Constructor
Parameters
-
string|null$name optional
__debugInfo() ¶ public
__debugInfo(): array
Returns an array that can be used to describe the internal state of this object.
Returns
array_basicTypeCast() ¶ protected
_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_compare() ¶ protected
_compare(Cake\I18n\Time|DateTime $date, mixed $value): bool
Parameters
-
Cake\I18n\Time|DateTime$date DateTime object
-
mixed$value Request data
Returns
bool_parseValue() ¶ protected
_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
Returns
Cake\I18n\Time|null_setClassName() ¶ protected
_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.
Returns
voidboolval() ¶ public static
boolval(mixed $value): bool
Type converter for boolean values.
Will convert string true/false into booleans.
Parameters
-
mixed$value The value to convert to a boolean.
Returns
boolbuild() ¶ public static
build(string $name): Cake\Database\Type
Returns a Type object capable of converting a type identified by name.
Parameters
-
string$name type identifier
Returns
Cake\Database\TypeThrows
InvalidArgumentExceptionIf type identifier is unknown
buildAll() ¶ public static
buildAll(): array
Returns an arrays with all the mapped type objects, indexed by name.
Returns
arrayclear() ¶ public static
clear(): void
Clears out all created instances and mapped types classes, useful for testing
Returns
voidgetBaseType() ¶ public
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
stringgetDateTimeClassName() ¶ public
getDateTimeClassName(): string
Get the classname used for building objects.
Returns
stringgetMap() ¶ public static
getMap(string|null $type = null): array|string|Cake\Database\TypeInterface|null
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|nullmanyToPHP() ¶ public
manyToPHP(array $values, string[] $fields, Cake\Database\Driver $driver): array
Returns an array of the values converted to the PHP representation of this type.
Parameters
-
array$values -
string[]$fields -
Cake\Database\Driver$driver
Returns
arraymap() ¶ public static
map(string|string[]|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|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|nullmarshal() ¶ public
marshal(mixed $value): DateTimeInterface|null
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|nullnewId() ¶ public
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
mixedSee Also
set() ¶ public static
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.
Returns
voidsetLocaleFormat() ¶ public
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
$thisSee Also
setMap() ¶ public static
setMap(string[] $map): void
Set type to classname mapping.
Parameters
-
string[]$map List of types to be mapped.
Returns
voidsetTimezone() ¶ public
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
$thisstrval() ¶ public static
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
stringtoDatabase() ¶ public
toDatabase(mixed $value, Cake\Database\Driver $driver): string|null
Convert DateTime instance into strings.
Parameters
-
mixed$value The value to convert.
-
Cake\Database\Driver$driver The driver instance to convert with.
Returns
string|nulltoPHP() ¶ public
toPHP(mixed $value, Cake\Database\Driver $driver): Cake\I18n\Time|DateTime|null
Convert strings into DateTime instances.
Parameters
-
mixed$value The value to convert.
-
Cake\Database\Driver$driver The driver instance to convert with.
Returns
Cake\I18n\Time|DateTime|nulltoStatement() ¶ public
toStatement(mixed $value, Cake\Database\Driver $driver): mixed
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
mixeduseImmutable() ¶ public
useImmutable(): $this
Change the preferred class name to the FrozenTime implementation.
Returns
$thisuseLocaleParser() ¶ public
useLocaleParser(bool $enable = true): $this
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
$thisuseMutable() ¶ public
useMutable(): $this
Change the preferred class name to the mutable Time implementation.
Returns
$thisProperty Detail
$_basicTypes ¶ protected static deprecated
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[]$_datetimeInstance ¶ protected
An instance of the configured dateTimeClass, used to quickly generate new instances without calling the constructor.
Type
DateTime$_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 deprecated
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$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