32 lines
588 B
PHP
32 lines
588 B
PHP
<?php declare(strict_types=1);
|
|
|
|
namespace App\Types;
|
|
|
|
use Doctrine\DBAL\Types\Type;
|
|
use Doctrine\DBAL\Platforms\AbstractPlatform;
|
|
|
|
use App\ValueObject\Money;
|
|
|
|
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;
|
|
}
|
|
}
|