1515use Oro \DBAL \Types \MoneyType ;
1616use Oro \DBAL \Types \ObjectType ;
1717use Oro \DBAL \Types \PercentType ;
18- use Oro \ORM \Query \AST \Functions ;
18+ use Oro \ORM \Query \AST \Functions \Cast ;
19+ use Oro \ORM \Query \AST \Functions \DateTime \ConvertTz ;
20+ use Oro \ORM \Query \AST \Functions \Numeric \Pow ;
21+ use Oro \ORM \Query \AST \Functions \Numeric \Round ;
22+ use Oro \ORM \Query \AST \Functions \Numeric \Sign ;
23+ use Oro \ORM \Query \AST \Functions \Numeric \TimestampDiff ;
24+ use Oro \ORM \Query \AST \Functions \SimpleFunction ;
25+ use Oro \ORM \Query \AST \Functions \String \ConcatWs ;
26+ use Oro \ORM \Query \AST \Functions \String \DateFormat ;
27+ use Oro \ORM \Query \AST \Functions \String \GroupConcat ;
28+ use Oro \ORM \Query \AST \Functions \String \Replace ;
1929use stdClass ;
2030
2131/**
@@ -25,11 +35,8 @@ final class OroincBehaviorExtension extends CompilerExtension
2535{
2636
2737 private const OVERRIDING_TYPES = [
28- Types::ARRAY => [
38+ Types::JSON => [
2939 ArrayType::class,
30- 'string ' ,
31- ],
32- Types::OBJECT => [
3340 ObjectType::class,
3441 'string ' ,
3542 ],
@@ -50,8 +57,13 @@ public function getConfigSchema(): Schema
5057 {
5158 return Expect::structure ([
5259 'driver ' => Expect::anyOf (
53- 'mysql ' , 'mysql2 ' , 'pdo_mysql ' , // mysql
54- 'pgsql ' , 'postgres ' , 'postgresql ' , 'pdo_pgsql ' // postgre
60+ 'mysql ' ,
61+ 'mysql2 ' ,
62+ 'pdo_mysql ' , // mysql
63+ 'pgsql ' ,
64+ 'postgres ' ,
65+ 'postgresql ' ,
66+ 'pdo_pgsql ' // postgre
5567 ),
5668 ]);
5769 }
@@ -74,8 +86,8 @@ public function beforeCompile(): void
7486 foreach (self ::OVERRIDING_TYPES + self ::NEW_TYPES as $ name => [$ className , $ dbType ]) {
7587 $ connectionDefinition ->addSetup ('?->getDatabasePlatform()->registerDoctrineTypeMapping(?, ?) ' , [
7688 '@self ' ,
77- $ dbType ,
78- $ name ,
89+ $ dbType ,
90+ $ name ,
7991 ]);
8092 }
8193 }
@@ -141,40 +153,40 @@ private function registerStringFunctions(ServiceDefinition $configurationDefinit
141153 private function registerCrossPlatformFunctions (ServiceDefinition $ configurationDefinition ): void
142154 {
143155 $ datetimeFunctions = [
144- 'date ' => Functions \ SimpleFunction::class,
145- 'time ' => Functions \ SimpleFunction::class,
146- 'timestamp ' => Functions \ SimpleFunction::class,
147- 'convert_tz ' => Functions \ DateTime \ ConvertTz::class,
156+ 'date ' => SimpleFunction::class,
157+ 'time ' => SimpleFunction::class,
158+ 'timestamp ' => SimpleFunction::class,
159+ 'convert_tz ' => ConvertTz::class,
148160 ];
149161 $ this ->registerDatetimeFunctions ($ configurationDefinition , $ datetimeFunctions );
150162
151163 $ numericFunctions = [
152- 'timestampdiff ' => Functions \ Numeric \ TimestampDiff::class,
153- 'dayofyear ' => Functions \ SimpleFunction::class,
154- 'dayofmonth ' => Functions \ SimpleFunction::class,
155- 'dayofweek ' => Functions \ SimpleFunction::class,
156- 'week ' => Functions \ SimpleFunction::class,
157- 'day ' => Functions \ SimpleFunction::class,
158- 'hour ' => Functions \ SimpleFunction::class,
159- 'minute ' => Functions \ SimpleFunction::class,
160- 'month ' => Functions \ SimpleFunction::class,
161- 'quarter ' => Functions \ SimpleFunction::class,
162- 'second ' => Functions \ SimpleFunction::class,
163- 'year ' => Functions \ SimpleFunction::class,
164- 'sign ' => Functions \ Numeric \ Sign::class,
165- 'pow ' => Functions \ Numeric \ Pow::class,
166- 'round ' => Functions \ Numeric \ Round::class,
167- 'ceil ' => Functions \ SimpleFunction::class,
164+ 'timestampdiff ' => TimestampDiff::class,
165+ 'dayofyear ' => SimpleFunction::class,
166+ 'dayofmonth ' => SimpleFunction::class,
167+ 'dayofweek ' => SimpleFunction::class,
168+ 'week ' => SimpleFunction::class,
169+ 'day ' => SimpleFunction::class,
170+ 'hour ' => SimpleFunction::class,
171+ 'minute ' => SimpleFunction::class,
172+ 'month ' => SimpleFunction::class,
173+ 'quarter ' => SimpleFunction::class,
174+ 'second ' => SimpleFunction::class,
175+ 'year ' => SimpleFunction::class,
176+ 'sign ' => Sign::class,
177+ 'pow ' => Pow::class,
178+ 'round ' => Round::class,
179+ 'ceil ' => SimpleFunction::class,
168180 ];
169181 $ this ->registerNumericFunctions ($ configurationDefinition , $ numericFunctions );
170182
171183 $ stringFunctions = [
172- 'md5 ' => Functions \ SimpleFunction::class,
173- 'group_concat ' => Functions \ String \ GroupConcat::class,
174- 'concat_ws ' => Functions \ String \ ConcatWs::class,
175- 'cast ' => Functions \ Cast::class,
176- 'replace ' => Functions \ String \ Replace::class,
177- 'date_format ' => Functions \ String \ DateFormat::class,
184+ 'md5 ' => SimpleFunction::class,
185+ 'group_concat ' => GroupConcat::class,
186+ 'concat_ws ' => ConcatWs::class,
187+ 'cast ' => Cast::class,
188+ 'replace ' => Replace::class,
189+ 'date_format ' => DateFormat::class,
178190 ];
179191 $ this ->registerStringFunctions ($ configurationDefinition , $ stringFunctions );
180192 }
0 commit comments