File tree Expand file tree Collapse file tree 4 files changed +34
-3
lines changed
Expand file tree Collapse file tree 4 files changed +34
-3
lines changed Original file line number Diff line number Diff line change 1212use PhpParser \Node \Expr \FuncCall ;
1313use PhpParser \Node \Name \FullyQualified ;
1414use PhpParser \Node \Scalar \String_ ;
15+ use Symplify \PhpConfigPrinter \Naming \ReferenceFunctionNameResolver ;
1516use Symplify \PhpConfigPrinter \NodeFactory \CommonNodeFactory ;
1617use Symplify \PhpConfigPrinter \NodeFactory \ConstantNodeFactory ;
1718use Symplify \PhpConfigPrinter \ValueObject \FunctionName ;
@@ -69,7 +70,7 @@ public function resolve(
6970 return $ this ->resolveServiceReferenceExpr (
7071 $ value ,
7172 $ skipServiceReference ,
72- FunctionName:: SERVICE ,
73+ ReferenceFunctionNameResolver:: resolve () ,
7374 $ isRoutingImport
7475 );
7576 }
Original file line number Diff line number Diff line change 77use PhpParser \Node \ArrayItem ;
88use PhpParser \Node \Expr \Array_ ;
99use Symfony \Component \Yaml \Tag \TaggedValue ;
10+ use Symplify \PhpConfigPrinter \Naming \ReferenceFunctionNameResolver ;
1011use Symplify \PhpConfigPrinter \ValueObject \FunctionName ;
1112
1213final readonly class TaggedReturnsCloneResolver
@@ -23,7 +24,7 @@ public function resolve(TaggedValue $taggedValue): Array_
2324 $ expr = $ this ->serviceReferenceExprResolver ->resolveServiceReferenceExpr (
2425 $ serviceName ,
2526 false ,
26- FunctionName:: SERVICE
27+ ReferenceFunctionNameResolver:: resolve ()
2728 );
2829
2930 return new Array_ ([new ArrayItem ($ expr )]);
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ declare (strict_types=1 );
4+
5+ namespace Symplify \PhpConfigPrinter \Naming ;
6+
7+ use Symplify \PhpConfigPrinter \ValueObject \FunctionName ;
8+
9+ /**
10+ * This helped method loads existing functions to refer a service
11+ * ref() or service() based on the Symfony version of current project
12+ */
13+ final class ReferenceFunctionNameResolver
14+ {
15+ /**
16+ * @return FunctionName::REF|FunctionName::SERVICE
17+ */
18+ public static function resolve (): string
19+ {
20+ if (function_exists (FunctionName::REF )) {
21+ return FunctionName::REF ;
22+ }
23+
24+ // fallback to service
25+ return FunctionName::SERVICE ;
26+ }
27+ }
Original file line number Diff line number Diff line change 1111use PhpParser \Node \Expr \FuncCall ;
1212use PhpParser \Node \Name \FullyQualified ;
1313use PhpParser \Node \Scalar \String_ ;
14+ use Symplify \PhpConfigPrinter \Naming \ReferenceFunctionNameResolver ;
1415use Symplify \PhpConfigPrinter \NodeFactory \ArgsNodeFactory ;
1516use Symplify \PhpConfigPrinter \ValueObject \FunctionName ;
1617
@@ -70,6 +71,7 @@ private function createServiceFuncCall(string $serviceName): FuncCall
7071 {
7172 $ serviceFuncCallArgs = $ this ->argsNodeFactory ->createFromValues ([$ serviceName ]);
7273
73- return new FuncCall (new FullyQualified (FunctionName::SERVICE ), $ serviceFuncCallArgs );
74+ $ functionName = ReferenceFunctionNameResolver::resolve ();
75+ return new FuncCall (new FullyQualified ($ functionName ), $ serviceFuncCallArgs );
7476 }
7577}
You can’t perform that action at this time.
0 commit comments