Class TypeFactory
Factory for building database type classes.
Property Summary
-
$_builtTypes protected static
array<Cake\Database\TypeInterface>
Contains a map of type object instances to be reused if needed.
-
$_types protected static
array<string, string>
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
-
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
-
getMap() public static
Get mapped class name for given type or map array.
-
map() public static
Registers a new type identifier and maps it to a fully namespaced classname.
-
set() public static
Set TypeInterface instance capable of converting a type identified by $name
-
setMap() public static
Set type to classname mapping.
Method Detail
build() ¶ public static
build(string $name): Cake\Database\TypeInterface
Returns a Type object capable of converting a type identified by name.
Parameters
-
string
$name type identifier
Returns
Cake\Database\TypeInterface
Throws
InvalidArgumentException
If type identifier is unknown
buildAll() ¶ public static
buildAll(): array<Cake\Database\TypeInterface>
Returns an arrays with all the mapped type objects, indexed by name.
Returns
array<Cake\Database\TypeInterface>
clear() ¶ public static
clear(): void
Clears out all created instances and mapped types classes, useful for testing
Returns
void
getMap() ¶ public static
getMap(string|null $type = null): array<string>|string|null
Get mapped class name for given type or map array.
Parameters
-
string|null
$type optional Type name to get mapped class for or null to get map array.
Returns
array<string>|string|null
map() ¶ public static
map(string $type, string $className): void
Registers a new type identifier and maps it to a fully namespaced classname.
Parameters
-
string
$type Name of type to map.
-
string
$className The classname to register.
Returns
void
set() ¶ public static
set(string $name, Cake\Database\TypeInterface $instance): void
Set TypeInterface instance capable of converting a type identified by $name
Parameters
-
string
$name The type identifier you want to set.
-
Cake\Database\TypeInterface
$instance The type instance you want to set.
Returns
void
setMap() ¶ public static
setMap(array<string> $map): void
Set type to classname mapping.
Parameters
-
array<string>
$map List of types to be mapped.
Returns
void
Property Detail
$_builtTypes ¶ protected static
Contains a map of type object instances to be reused if needed.
Type
array<Cake\Database\TypeInterface>
$_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
array<string, string>