Skip to content

Commit bc35dfe

Browse files
committed
Added Iban and TaxIdNumber Doctrine custom types
1 parent 8b987f4 commit bc35dfe

File tree

3 files changed

+95
-0
lines changed

3 files changed

+95
-0
lines changed

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ To get the diff between two versions, go to https://github.com/LIN3S/SharedKerne
77

88
* 0.9.0
99
* Added Doctrine Mappings ready to use with Doctrine in standalone mode.
10+
* Added Iban and TaxIdNumber Doctrine custom types.
1011
* 0.8.0
1112
* Added Iban value object.
1213
* 0.7.1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
<?php
2+
3+
/*
4+
* This file is part of the Shared Kernel library.
5+
*
6+
* Copyright (c) 2016-present LIN3S <[email protected]>
7+
*
8+
* For the full copyright and license information, please view the LICENSE
9+
* file that was distributed with this source code.
10+
*/
11+
12+
declare(strict_types=1);
13+
14+
namespace LIN3S\SharedKernel\Infrastructure\Persistence\Doctrine\DBAL\Domain\Model\Iban\Types;
15+
16+
use Doctrine\DBAL\Platforms\AbstractPlatform;
17+
use Doctrine\DBAL\Types\TextType;
18+
use LIN3S\SharedKernel\Domain\Model\Iban\Iban;
19+
20+
/**
21+
* @author Rubén García <[email protected]>
22+
*/
23+
class IbanType extends TextType
24+
{
25+
public function convertToDatabaseValue($value, AbstractPlatform $platform)
26+
{
27+
if ($value instanceof Iban) {
28+
return $value->iban();
29+
}
30+
31+
return $value;
32+
}
33+
34+
public function convertToPHPValue($value, AbstractPlatform $platform)
35+
{
36+
if (null === $value) {
37+
return;
38+
}
39+
40+
return Iban::from($value);
41+
}
42+
43+
public function getName()
44+
{
45+
return 'iban';
46+
}
47+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
<?php
2+
3+
/*
4+
* This file is part of the Shared Kernel library.
5+
*
6+
* Copyright (c) 2016-present LIN3S <[email protected]>
7+
*
8+
* For the full copyright and license information, please view the LICENSE
9+
* file that was distributed with this source code.
10+
*/
11+
12+
declare(strict_types=1);
13+
14+
namespace LIN3S\SharedKernel\Infrastructure\Persistence\Doctrine\DBAL\Domain\Model\TaxIdNumber\Types;
15+
16+
use Doctrine\DBAL\Platforms\AbstractPlatform;
17+
use Doctrine\DBAL\Types\TextType;
18+
use LIN3S\SharedKernel\Domain\Model\TaxIdNumber\TaxIdNumber;
19+
20+
/**
21+
* @author Rubén García <[email protected]>
22+
*/
23+
class TaxIdNumberType extends TextType
24+
{
25+
public function convertToDatabaseValue($value, AbstractPlatform $platform)
26+
{
27+
if ($value instanceof TaxIdNumber) {
28+
return $value->number();
29+
}
30+
31+
return $value;
32+
}
33+
34+
public function convertToPHPValue($value, AbstractPlatform $platform)
35+
{
36+
if (null === $value) {
37+
return;
38+
}
39+
40+
return TaxIdNumber::fromSpain($value);
41+
}
42+
43+
public function getName()
44+
{
45+
return 'tax_id_number';
46+
}
47+
}

0 commit comments

Comments
 (0)