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

Namespace: Cake\Database
Location: Database/Type.php

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
    Contains a map of type object instances to be reused if needed.
  • $_name protected
    string|null
    Identifier name for this type
  • $_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.

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
    Marshalls 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()source public

__construct( string|null $name = null )

Constructor

Parameters

string|null $name optional null
The name identifying this type

__debugInfo()source public

__debugInfo( )

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

Returns

array

_basicTypeCast()source 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

3.1 All types should now be a specific class

Parameters

mixed $value
Value to be converted to PHP equivalent

Returns

mixed

boolval()source public static deprecated

boolval( mixed $value )

Type converter for boolean values.

Will convert string true/false into booleans.

Deprecated

3.1.8 This method is now unused.

Parameters

mixed $value
The value to convert to a boolean.

Returns

boolean

build()source public static

build( string $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()source public static

buildAll( )

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

Returns

array

clear()source public static

clear( )

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

getBaseType()source public

getBaseType( )

Returns the base type name that this class is inheriting.

Returns

string
The base type name that this class is inheriting.

Implementation of

Cake\Database\TypeInterface::getBaseType()

getMap()source 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

array|string|Cake\Database\TypeInterface|null
Configured class name or instance for give $type or map array.

Since

3.6.2

getName()source public

getName( )

Returns type identifier name for this object.

Returns

string
The type identifier name for this object.

Implementation of

Cake\Database\TypeInterface::getName()

map()source 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

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()source public

marshal( mixed $value )

Marshalls flat data into PHP objects.

Parameters

mixed $value
The value to convert.

Returns

mixed
Converted value.

Implementation of

Cake\Database\TypeInterface::marshal()

newId()source public

newId( )

Generate a new primary key value for a given type.

Returns

mixed
A new primary key value.

Implementation of

Cake\Database\TypeInterface::newId()

set()source 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()source public static

setMap( array $map )

Set type to classname mapping.

Parameters

array $map
List of types to be mapped.

Since

3.6.2

strval()source public static deprecated

strval( mixed $value )

Type converter for string values.

Will convert values into strings

Deprecated

3.1.8 This method is now unused.

Parameters

mixed $value
The value to convert to a string.

Returns

string

toDatabase()source 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

mixed
Given PHP type casted to one acceptable by a database.

Implementation of

Cake\Database\TypeInterface::toDatabase()

toPHP()source 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

mixed

Implementation of

Cake\Database\TypeInterface::toPHP()

toStatement()source 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

mixed
Given value casted to its Statement equivalent.

Implementation of

Cake\Database\TypeInterface::toStatement()

Properties detail

$_basicTypessource

protected static array

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

Deprecated

3.1 All types will now use a specific class
[
    'string' => ['callback' => [Type::class, 'strval']],
    'text' => ['callback' => [Type::class, 'strval']],
    'boolean' => [
        'callback' => [Type::class, 'boolval'],
        'pdo' => PDO::PARAM_BOOL
    ],
]

$_builtTypessource

protected static Cake\Database\Type[]

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

[]

$_namesource

protected string|null

Identifier name for this type

$_typessource

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.

[
    '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',
]

© 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.6/class-Cake.Database.Type.html