/** * Builds the type map * * @param \Cake\Database\TypeMap $typeMap Contains the types to use for converting results * @param \Cake\Database\Driver $driver The driver to use for the type conversion */ public function __construct(TypeMap $typeMap, Driver $driver) { $this->_driver = $driver; $map = $typeMap->toArray(); $types = Type::buildAll(); $result = []; foreach ($types as $k => $type) { if ($type instanceof OptionalConvertInterface && !$type->requiresToPhpCast()) { unset($types[$k]); } } foreach ($map as $field => $type) { if (isset($types[$type])) { $result[$field] = $types[$type]; } } $this->_typeMap = $result; }