collection-crud/src/Types/MoneyType.php

32 lines
648 B
PHP

<?php declare(strict_types=1);
namespace App\Types;
use App\ValueObject\Money;
use Doctrine\DBAL\Platforms\AbstractPlatform;
use Doctrine\DBAL\Types\Type;
class MoneyType extends Type
{
public function getSQLDeclaration(array $column, AbstractPlatform $platform): string
{
return 'MONEY';
}
public function convertToPHPValue($value, AbstractPlatform $platform): float
{
return (float) (string) new Money($value);
}
public function getName(): string
{
return 'money';
}
public function requiresSQLCommentHint(AbstractPlatform $platform): bool
{
return true;
}
}