src/Infrastructure/StatusType.php
<?php
namespace Nord\Lumen\Core\Infrastructure;
use Doctrine\DBAL\Platforms\AbstractPlatform;
use Doctrine\DBAL\Types\Type;
use Nord\Lumen\Core\Domain\Status;
final class StatusType extends Type
{
/**
* @inheritdoc
*/
public function convertToDatabaseValue($value, AbstractPlatform $platform)
{
return $value instanceof Status ? $value->getValue() : $value;
}
/**
* @inheritdoc
*/
public function convertToPHPValue($value, AbstractPlatform $platform)
{
return new Status((int) $value);
}
/**
* @inheritdoc
*/
public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform)
{
return $platform->getIntegerTypeDeclarationSQL($fieldDeclaration);
}
/**
* @inheritdoc
*/
public function getName()
{
return 'status';
}
}