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

    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
  • _basicTypeCast() protected

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

  • 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.
  • 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
  • strval() public static
    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

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

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

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

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|array|Cake\Database\Type|null $type null , string|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

Parameters

string|array|Cake\Database\Type|null $type optional null
if string name of type to map, if array list of arrays to be mapped
string|null $className optional null
The classname 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.

strval()source public static

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

boolean

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' => ['\Cake\Database\Type', 'strval']],
    'text' => ['callback' => ['\Cake\Database\Type', 'strval']],
    'boolean' => [
        'callback' => ['\Cake\Database\Type', 'boolval'],
        'pdo' => PDO::PARAM_BOOL
    ],
]

$_builtTypessource

protected static array

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

[]

$_namesource

protected string

Identifier name for this type

null

$_typessource

protected static array

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.

[
    'biginteger' => 'Cake\Database\Type\IntegerType',
    'binary' => 'Cake\Database\Type\BinaryType',
    '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',
    'integer' => 'Cake\Database\Type\IntegerType',
    '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–2017 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.3/class-Cake.Database.Type.html