Class DecimalType
Decimal type converter.
Use to convert decimal data between PHP and the database types.
Property Summary
-
$_name protected
string|null
Identifier name for this type
-
$_useLocaleParser protected
bool
Whether numbers should be parsed using a locale aware parser when marshalling string inputs.
-
$numberClass public static
string
The class to use for representing number objects
Method Summary
-
__construct() public
Constructor
-
_parseValue() protected
Converts localized string into a decimal string after parsing it using the locale aware parser.
-
getBaseType() public
Returns the base type name that this class is inheriting.
-
getName() public
Returns type identifier name for this object.
-
manyToPHP() public
Returns an array of the values converted to the PHP representation of this type.
-
marshal() public
Marshalls request data into decimal strings.
-
newId() public
Generate a new primary key value for a given type.
-
toDatabase() public
Convert decimal strings into the database format.
-
toPHP() public
Casts given value from a database type to a PHP equivalent.
-
toStatement() public
Get the correct PDO binding type for decimal data.
-
useLocaleParser() public
Sets whether to parse numbers passed to the marshal() function by using a locale aware parser.
Method Detail
__construct() ¶ public
__construct(string|null $name = null)
Constructor
Parameters
-
string|null
$name optional The name identifying this type
_parseValue() ¶ protected
_parseValue(string $value): string
Converts localized string into a decimal string after parsing it using the locale aware parser.
Parameters
-
string
$value The value to parse and convert to an float.
Returns
string
getBaseType() ¶ public
getBaseType(): string|null
Returns the base type name that this class is inheriting.
This is useful when extending base type for adding extra functionality, but still want the rest of the framework to use the same assumptions it would do about the base type it inherits from.
Returns
string|null
getName() ¶ public
getName(): string|null
Returns type identifier name for this object.
Returns
string|null
manyToPHP() ¶ public
manyToPHP(array $values, array<string> $fields, Cake\Database\DriverInterface $driver): array
Returns an array of the values converted to the PHP representation of this type.
Parameters
-
array
$values -
array<string>
$fields -
Cake\Database\DriverInterface
$driver
Returns
array
marshal() ¶ public
marshal(mixed $value): string|null
Marshalls request data into decimal strings.
Most useful for converting request data into PHP objects, that make sense for the rest of the ORM/Database layers.
Parameters
-
mixed
$value The value to convert.
Returns
string|null
newId() ¶ public
newId(): mixed
Generate a new primary key value for a given type.
This method can be used by types to create new primary key values when entities are inserted.
Returns
mixed
toDatabase() ¶ public
toDatabase(mixed $value, Cake\Database\DriverInterface $driver): string|float|int|null
Convert decimal strings into the database format.
Parameters
-
mixed
$value The value to convert.
-
Cake\Database\DriverInterface
$driver The driver instance to convert with.
Returns
string|float|int|null
Throws
InvalidArgumentException
toPHP() ¶ public
toPHP(mixed $value, Cake\Database\DriverInterface $driver): string|null
Casts given value from a database type to a PHP equivalent.
Parameters
-
mixed
$value The value to convert.
-
Cake\Database\DriverInterface
$driver The driver instance to convert with.
Returns
string|null
toStatement() ¶ public
toStatement(mixed $value, Cake\Database\DriverInterface $driver): int
Get the correct PDO binding type for decimal data.
Parameters
-
mixed
$value The value being bound.
-
Cake\Database\DriverInterface
$driver The driver.
Returns
int
useLocaleParser() ¶ public
useLocaleParser(bool $enable = true): $this
Sets whether to parse numbers passed to the marshal() function by using a locale aware parser.
Parameters
-
bool
$enable optional Whether to enable
Returns
$this
Throws
RuntimeException
Property Detail
$_useLocaleParser ¶ protected
Whether numbers should be parsed using a locale aware parser when marshalling string inputs.
Type
bool