. */ namespace App\Helpers; use Brick\Math\BigDecimal; use Doctrine\DBAL\Platforms\AbstractPlatform; use Doctrine\DBAL\Types\Type; class BigDecimalType extends Type { public const BIG_DECIMAL = 'big_decimal'; public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform) { return $platform->getDecimalTypeDeclarationSQL($fieldDeclaration); } /** * @param string $value * @param AbstractPlatform $platform * @return BigDecimal|\Brick\Math\BigNumber|mixed */ public function convertToPHPValue($value, AbstractPlatform $platform) { if ($value === null) { return null; } return BigDecimal::of($value); } /** * @param BigDecimal $value * @param AbstractPlatform $platform * @return mixed */ public function convertToDatabaseValue($value, AbstractPlatform $platform) { if ($value === null) { return null; } return (string) $value; } public function getName() { return self::BIG_DECIMAL; } public function requiresSQLCommentHint(AbstractPlatform $platform) { return true; } }