Class Type
Encapsulates all conversion functions for values coming from database into PHP and going from PHP into database.
- Cake\Database\Type implements Cake\Database\TypeInterface
Direct Subclasses
Indirect Subclasses
Properties summary
-
$_basicTypes
protected staticarray
List of basic type mappings, used to avoid having to instantiate a class for doing conversion on these.
-
$_builtTypes
protected staticContains a map of type object instances to be reused if needed. -
$_name
protectedstring|null
Identifier name for this type -
$_types
protected staticstring[]|
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.
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
-
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. -
getMap() public static
Get mapped class name or instance for type(s). -
getName() public
Returns type identifier name for this object. -
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
Marshals flat data into PHP objects. -
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 -
setMap() public static
Set type to classname mapping. -
strval() public static deprecated
Type converter for string values. -
toDatabase() public
Casts given value from a PHP type to one acceptable by a database. -
toPHP() public
Casts given value from a database type to PHP equivalent -
toStatement() public
Casts given value to its Statement equivalent.
Method Detail
__construct() public ¶
__construct( string|null $name = null )
Constructor
Parameters
- string|null $name optional null
- The name identifying this type
__debugInfo() public ¶
__debugInfo( )
Returns an array that can be used to describe the internal state of this object.
Returns
_basicTypeCast() protected deprecated ¶
_basicTypeCast( mixed $value )
Checks whether this type is a basic one and can be converted using a callback If it is, returns converted value
Deprecated
Parameters
- mixed $value
- Value to be converted to PHP equivalent
Returns
boolval() public static deprecated ¶
boolval( mixed $value )
Type converter for boolean values.
Will convert string true/false into booleans.
Deprecated
Parameters
- mixed $value
- The value to convert to a boolean.
Returns
build() public static ¶
build( string $name )
Returns a Type object capable of converting a type identified by name.
Parameters
- string $name
- type identifier
Returns
Throws
If type identifier is unknown
buildAll() public static ¶
buildAll( )
Returns an arrays with all the mapped type objects, indexed by name.
Returns
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.
Returns
The base type name that this class is inheriting.
Implementation of
getMap() public static ¶
getMap( string|null $type = null )
Get mapped class name or instance for type(s).
Parameters
- string|null $type optional null
- Type name to get mapped class for or null to get map array.
Returns
Cake\Database\TypeInterface
|nullConfigured class name or instance for give $type or map array.
Since
getName() public ¶
getName( )
Returns type identifier name for this object.
Returns
The type identifier name for this object.
Implementation of
map() public static ¶
map( string|string[]|Cake\Database\Type[]
|null $type = null , string|Cake\Database\Type
|null $className = 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 null - If string name of type to map, if array list of arrays to be mapped
-
string|
Cake\Database\Type
|null $className optional null - The classname or object instance of it to register.
Returns
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 )
Marshals flat data into PHP objects.
Parameters
- mixed $value
- The value to convert.
Returns
Converted value.
Implementation of
newId() public ¶
newId( )
Generate a new primary key value for a given type.
Returns
A new primary key value.
Implementation of
set() public static ¶
set( string $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.
setMap() public static ¶
setMap( array $map )
Set type to classname mapping.
Parameters
- array $map
- List of types to be mapped.
Since
strval() public static deprecated ¶
strval( mixed $value )
Type converter for string values.
Will convert values into strings
Deprecated
Parameters
- mixed $value
- The value to convert to a string.
Returns
toDatabase() public ¶
toDatabase( mixed $value , Cake\Database\Driver
$driver )
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
Given PHP type casted to one acceptable by a database.
Implementation of
toPHP() public ¶
toPHP( mixed $value , Cake\Database\Driver
$driver )
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
Implementation of
toStatement() public ¶
toStatement( mixed $value , Cake\Database\Driver
$driver )
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
Given value casted to its Statement equivalent.
Implementation of
Properties detail
$_basicTypes ¶
List of basic type mappings, used to avoid having to instantiate a class for doing conversion on these.
Deprecated
[ 'string' => ['callback' => [Type::class, 'strval']], 'text' => ['callback' => [Type::class, 'strval']], 'boolean' => [ 'callback' => [Type::class, 'boolval'], 'pdo' => PDO::PARAM_BOOL ], ]
$_types ¶
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.
[ 'tinyinteger' => 'Cake\Database\Type\IntegerType', 'smallinteger' => 'Cake\Database\Type\IntegerType', 'integer' => 'Cake\Database\Type\IntegerType', 'biginteger' => 'Cake\Database\Type\IntegerType', 'binary' => 'Cake\Database\Type\BinaryType', 'binaryuuid' => 'Cake\Database\Type\BinaryUuidType', 'boolean' => 'Cake\Database\Type\BoolType', 'date' => 'Cake\Database\Type\DateType', 'datetime' => 'Cake\Database\Type\DateTimeType', 'decimal' => 'Cake\Database\Type\DecimalType', 'float' => 'Cake\Database\Type\FloatType', 'json' => 'Cake\Database\Type\JsonType', 'string' => 'Cake\Database\Type\StringType', 'text' => 'Cake\Database\Type\StringType', 'time' => 'Cake\Database\Type\TimeType', 'timestamp' => 'Cake\Database\Type\DateTimeType', 'uuid' => 'Cake\Database\Type\UuidType', ]