Skip to content

Commit edec07e

Browse files
Gwemoxx86demon
authored andcommitted
feat: compatibility with doctrine orm 3.0 minimum
1 parent cf002e0 commit edec07e

27 files changed

+150
-349
lines changed

README.md

-4
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,3 @@ This library also provides the following field types:
240240

241241
* `MoneyType`
242242
* `PercentType`
243-
* `ObjectType`
244-
* `ArrayType`
245-
246-
`ObjectType` and `ArrayType` use Base64 encoded strings to store values in the database instead of storing serialized strings. For backward compatibility the values that are already stored in the database will be unserialized without Base64 encoding. The new values will be Base64 encoded before saving to the database and Base64 decoded before unserialization.

UPGRADE.md

+7
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
# Upgrade to 3.0
2+
Version 3.0 requires PHP 8.1 or newer and works with Doctrine/ORM 3.0 or newer.
3+
4+
The following types are no longer supported :
5+
* `ObjectType`
6+
* `ArrayType`
7+
18
# Upgrade to 2.0
29

310
Version 2.0 requires PHP 7.3 or newer and works with Doctrine/ORM 2.6 or newer.

composer.json

+5-5
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,17 @@
1313
],
1414
"require": {
1515
"php": ">=8.1",
16-
"doctrine/lexer": "~1.0|~2.0",
17-
"doctrine/orm": "~2.8",
18-
"doctrine/dbal": "~2.10|~3.0"
16+
"doctrine/lexer": "~3.0",
17+
"doctrine/orm": "~3.0",
18+
"doctrine/dbal": "~3.0|~4.0"
1919
},
2020
"require-dev": {
2121
"phpunit/phpunit": "~10",
2222
"doctrine/data-fixtures": "^1.3",
2323
"symfony/yaml": "5.*",
2424
"symfony/cache": "5.*",
25-
"squizlabs/php_codesniffer": "3.5.*",
26-
"doctrine/annotations": ">1.0, <2.0"
25+
"squizlabs/php_codesniffer": "3.9.*",
26+
"doctrine/annotations": "~2.0"
2727
},
2828
"autoload": {
2929
"psr-4": {

src/Oro/DBAL/Types/ArrayType.php

-31
This file was deleted.

src/Oro/DBAL/Types/MoneyType.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public function getName()
2525
* @noinspection PhpMissingReturnTypeInspection
2626
* @noinspection ReturnTypeCanBeDeclaredInspection
2727
*/
28-
public function getSQLDeclaration(array $column, AbstractPlatform $platform)
28+
public function getSQLDeclaration(array $column, AbstractPlatform $platform): string
2929
{
3030
$column['precision'] = self::TYPE_PRECISION;
3131
$column['scale'] = self::TYPE_SCALE;
@@ -38,7 +38,7 @@ public function getSQLDeclaration(array $column, AbstractPlatform $platform)
3838
* @noinspection PhpMissingParentCallCommonInspection
3939
* @noinspection PhpDocSignatureInspection
4040
*/
41-
public function convertToPHPValue($value, AbstractPlatform $platform)
41+
public function convertToPHPValue($value, AbstractPlatform $platform): mixed
4242
{
4343
return $value;
4444
}

src/Oro/DBAL/Types/ObjectType.php

-31
This file was deleted.

src/Oro/DBAL/Types/PercentType.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public function getName()
2424
* @noinspection PhpMissingReturnTypeInspection
2525
* @noinspection ReturnTypeCanBeDeclaredInspection
2626
*/
27-
public function getSQLDeclaration(array $column, AbstractPlatform $platform)
27+
public function getSQLDeclaration(array $column, AbstractPlatform $platform): string
2828
{
2929
return $platform->getFloatDeclarationSQL($column);
3030
}
@@ -35,7 +35,7 @@ public function getSQLDeclaration(array $column, AbstractPlatform $platform)
3535
* @noinspection ReturnTypeCanBeDeclaredInspection
3636
* @noinspection PhpDocSignatureInspection
3737
*/
38-
public function convertToPHPValue($value, AbstractPlatform $platform)
38+
public function convertToPHPValue($value, AbstractPlatform $platform): mixed
3939
{
4040
return (null === $value) ? null : (double) $value;
4141
}

src/Oro/ORM/Query/AST/Functions/AbstractPlatformAwareFunctionNode.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ abstract class AbstractPlatformAwareFunctionNode extends FunctionNode
1616
* @noinspection ReturnTypeCanBeDeclaredInspection
1717
* {@inheritdoc}
1818
*/
19-
public function getSql(SqlWalker $sqlWalker)
19+
public function getSql(SqlWalker $sqlWalker): string
2020
{
2121
$function = FunctionFactory::create(
2222
$sqlWalker->getConnection()->getDatabasePlatform(),

src/Oro/ORM/Query/AST/Functions/Cast.php

+13-13
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
namespace Oro\ORM\Query\AST\Functions;
55

66
use Doctrine\ORM\Query\Parser;
7-
use Doctrine\ORM\Query\Lexer;
7+
use Doctrine\ORM\Query\TokenType;
88

99
class Cast extends AbstractPlatformAwareFunctionNode
1010
{
@@ -33,32 +33,32 @@ class Cast extends AbstractPlatformAwareFunctionNode
3333
/**
3434
* {@inheritdoc}
3535
*/
36-
public function parse(Parser $parser)
36+
public function parse(Parser $parser): void
3737
{
38-
$parser->match(Lexer::T_IDENTIFIER);
39-
$parser->match(Lexer::T_OPEN_PARENTHESIS);
38+
$parser->match(TokenType::T_IDENTIFIER);
39+
$parser->match(TokenType::T_OPEN_PARENTHESIS);
4040
$this->parameters[self::PARAMETER_KEY] = $parser->ArithmeticExpression();
4141

42-
$parser->match(Lexer::T_AS);
42+
$parser->match(TokenType::T_AS);
4343

44-
$parser->match(Lexer::T_IDENTIFIER);
44+
$parser->match(TokenType::T_IDENTIFIER);
4545
$lexer = $parser->getLexer();
4646
$type = $lexer->token->value;
4747

48-
if ($lexer->isNextToken(Lexer::T_OPEN_PARENTHESIS)) {
49-
$parser->match(Lexer::T_OPEN_PARENTHESIS);
48+
if ($lexer->isNextToken(TokenType::T_OPEN_PARENTHESIS)) {
49+
$parser->match(TokenType::T_OPEN_PARENTHESIS);
5050
$parameter = $parser->Literal();
5151
$parameters = [
5252
$parameter->value
5353
];
54-
if ($lexer->isNextToken(Lexer::T_COMMA)) {
55-
while ($lexer->isNextToken(Lexer::T_COMMA)) {
56-
$parser->match(Lexer::T_COMMA);
54+
if ($lexer->isNextToken(TokenType::T_COMMA)) {
55+
while ($lexer->isNextToken(TokenType::T_COMMA)) {
56+
$parser->match(TokenType::T_COMMA);
5757
$parameter = $parser->Literal();
5858
$parameters[] = $parameter->value;
5959
}
6060
}
61-
$parser->match(Lexer::T_CLOSE_PARENTHESIS);
61+
$parser->match(TokenType::T_CLOSE_PARENTHESIS);
6262
$type .= '(' . \implode(', ', $parameters) . ')';
6363
}
6464

@@ -75,7 +75,7 @@ public function parse(Parser $parser)
7575

7676
$this->parameters[self::TYPE_KEY] = $type;
7777

78-
$parser->match(Lexer::T_CLOSE_PARENTHESIS);
78+
$parser->match(TokenType::T_CLOSE_PARENTHESIS);
7979
}
8080

8181
protected function isSupportedType(string $type): bool

src/Oro/ORM/Query/AST/Functions/DateTime/ConvertTz.php

+7-7
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
namespace Oro\ORM\Query\AST\Functions\DateTime;
55

66
use Doctrine\ORM\Query\Parser;
7-
use Doctrine\ORM\Query\Lexer;
7+
use Doctrine\ORM\Query\TokenType;
88
use Oro\ORM\Query\AST\Functions\AbstractPlatformAwareFunctionNode;
99

1010
class ConvertTz extends AbstractPlatformAwareFunctionNode
@@ -16,15 +16,15 @@ class ConvertTz extends AbstractPlatformAwareFunctionNode
1616
/**
1717
* {@inheritdoc}
1818
*/
19-
public function parse(Parser $parser)
19+
public function parse(Parser $parser): void
2020
{
21-
$parser->match(Lexer::T_IDENTIFIER);
22-
$parser->match(Lexer::T_OPEN_PARENTHESIS);
21+
$parser->match(TokenType::T_IDENTIFIER);
22+
$parser->match(TokenType::T_OPEN_PARENTHESIS);
2323
$this->parameters[self::VALUE_KEY] = $parser->ArithmeticPrimary();
24-
$parser->match(Lexer::T_COMMA);
24+
$parser->match(TokenType::T_COMMA);
2525
$this->parameters[self::FROM_TZ_KEY] = $parser->ArithmeticPrimary();
26-
$parser->match(Lexer::T_COMMA);
26+
$parser->match(TokenType::T_COMMA);
2727
$this->parameters[self::TO_TZ_KEY] = $parser->ArithmeticPrimary();
28-
$parser->match(Lexer::T_CLOSE_PARENTHESIS);
28+
$parser->match(TokenType::T_CLOSE_PARENTHESIS);
2929
}
3030
}

src/Oro/ORM/Query/AST/Functions/Numeric/Pow.php

+6-6
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
namespace Oro\ORM\Query\AST\Functions\Numeric;
55

66
use Doctrine\ORM\Query\Parser;
7-
use Doctrine\ORM\Query\Lexer;
7+
use Doctrine\ORM\Query\TokenType;
88
use Oro\ORM\Query\AST\Functions\AbstractPlatformAwareFunctionNode;
99

1010
class Pow extends AbstractPlatformAwareFunctionNode
@@ -15,13 +15,13 @@ class Pow extends AbstractPlatformAwareFunctionNode
1515
/**
1616
* {@inheritdoc}
1717
*/
18-
public function parse(Parser $parser)
18+
public function parse(Parser $parser): void
1919
{
20-
$parser->match(Lexer::T_IDENTIFIER);
21-
$parser->match(Lexer::T_OPEN_PARENTHESIS);
20+
$parser->match(TokenType::T_IDENTIFIER);
21+
$parser->match(TokenType::T_OPEN_PARENTHESIS);
2222
$this->parameters[self::VALUE_KEY] = $parser->SimpleArithmeticExpression();
23-
$parser->match(Lexer::T_COMMA);
23+
$parser->match(TokenType::T_COMMA);
2424
$this->parameters[self::POWER_KEY] = $parser->ArithmeticPrimary();
25-
$parser->match(Lexer::T_CLOSE_PARENTHESIS);
25+
$parser->match(TokenType::T_CLOSE_PARENTHESIS);
2626
}
2727
}

src/Oro/ORM/Query/AST/Functions/Numeric/Round.php

+7-7
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
namespace Oro\ORM\Query\AST\Functions\Numeric;
55

66
use Doctrine\ORM\Query\Parser;
7-
use Doctrine\ORM\Query\Lexer;
7+
use Doctrine\ORM\Query\TokenType;
88
use Oro\ORM\Query\AST\Functions\AbstractPlatformAwareFunctionNode;
99

1010
class Round extends AbstractPlatformAwareFunctionNode
@@ -15,19 +15,19 @@ class Round extends AbstractPlatformAwareFunctionNode
1515
/**
1616
* {@inheritdoc}
1717
*/
18-
public function parse(Parser $parser)
18+
public function parse(Parser $parser): void
1919
{
2020
$lexer = $parser->getLexer();
21-
$parser->match(Lexer::T_IDENTIFIER);
22-
$parser->match(Lexer::T_OPEN_PARENTHESIS);
21+
$parser->match(TokenType::T_IDENTIFIER);
22+
$parser->match(TokenType::T_OPEN_PARENTHESIS);
2323
$this->parameters[self::VALUE] = $parser->SimpleArithmeticExpression();
2424

2525
// parse second parameter if available
26-
if (Lexer::T_COMMA === $lexer->lookahead['type']) {
27-
$parser->match(Lexer::T_COMMA);
26+
if (TokenType::T_COMMA === $lexer->lookahead->type) {
27+
$parser->match(TokenType::T_COMMA);
2828
$this->parameters[self::PRECISION] = $parser->ArithmeticPrimary();
2929
}
3030

31-
$parser->match(Lexer::T_CLOSE_PARENTHESIS);
31+
$parser->match(TokenType::T_CLOSE_PARENTHESIS);
3232
}
3333
}

src/Oro/ORM/Query/AST/Functions/Numeric/Sign.php

+5-5
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
namespace Oro\ORM\Query\AST\Functions\Numeric;
55

66
use Doctrine\ORM\Query\Parser;
7-
use Doctrine\ORM\Query\Lexer;
7+
use Doctrine\ORM\Query\TokenType;
88
use Oro\ORM\Query\AST\Functions\AbstractPlatformAwareFunctionNode;
99

1010
class Sign extends AbstractPlatformAwareFunctionNode
@@ -14,11 +14,11 @@ class Sign extends AbstractPlatformAwareFunctionNode
1414
/**
1515
* {@inheritdoc}
1616
*/
17-
public function parse(Parser $parser)
17+
public function parse(Parser $parser): void
1818
{
19-
$parser->match(Lexer::T_IDENTIFIER);
20-
$parser->match(Lexer::T_OPEN_PARENTHESIS);
19+
$parser->match(TokenType::T_IDENTIFIER);
20+
$parser->match(TokenType::T_OPEN_PARENTHESIS);
2121
$this->parameters[self::PARAMETER_KEY] = $parser->SimpleArithmeticExpression();
22-
$parser->match(Lexer::T_CLOSE_PARENTHESIS);
22+
$parser->match(TokenType::T_CLOSE_PARENTHESIS);
2323
}
2424
}

src/Oro/ORM/Query/AST/Functions/Numeric/TimestampDiff.php

+9-9
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
namespace Oro\ORM\Query\AST\Functions\Numeric;
55

66
use Doctrine\ORM\Query\Parser;
7-
use Doctrine\ORM\Query\Lexer;
7+
use Doctrine\ORM\Query\TokenType;
88
use Oro\ORM\Query\AST\Functions\AbstractPlatformAwareFunctionNode;
99

1010
class TimestampDiff extends AbstractPlatformAwareFunctionNode
@@ -31,14 +31,14 @@ class TimestampDiff extends AbstractPlatformAwareFunctionNode
3131
/**
3232
* {@inheritdoc}
3333
*/
34-
public function parse(Parser $parser)
34+
public function parse(Parser $parser): void
3535
{
36-
$parser->match(Lexer::T_IDENTIFIER);
37-
$parser->match(Lexer::T_OPEN_PARENTHESIS);
38-
$parser->match(Lexer::T_IDENTIFIER);
36+
$parser->match(TokenType::T_IDENTIFIER);
37+
$parser->match(TokenType::T_OPEN_PARENTHESIS);
38+
$parser->match(TokenType::T_IDENTIFIER);
3939

4040
$lexer = $parser->getLexer();
41-
$unit = strtoupper(trim($lexer->token['value']));
41+
$unit = strtoupper(trim($lexer->token->value));
4242
if (!$this->isSupportedUnit($unit)) {
4343
$parser->syntaxError(
4444
\sprintf(
@@ -51,11 +51,11 @@ public function parse(Parser $parser)
5151
}
5252

5353
$this->parameters[self::UNIT_KEY] = $unit;
54-
$parser->match(Lexer::T_COMMA);
54+
$parser->match(TokenType::T_COMMA);
5555
$this->parameters[self::VAL1_KEY] = $parser->ArithmeticPrimary();
56-
$parser->match(Lexer::T_COMMA);
56+
$parser->match(TokenType::T_COMMA);
5757
$this->parameters[self::VAL2_KEY] = $parser->ArithmeticPrimary();
58-
$parser->match(Lexer::T_CLOSE_PARENTHESIS);
58+
$parser->match(TokenType::T_CLOSE_PARENTHESIS);
5959
}
6060

6161
protected function isSupportedUnit(string $unit): bool

0 commit comments

Comments
 (0)