2
2
3
3
namespace Overblog \GraphQLBundle \Resolver ;
4
4
5
+ use Symfony \Component \HttpKernel \Kernel ;
6
+
5
7
abstract class AbstractResolver implements FluentResolverInterface
6
8
{
7
9
/** @var array */
@@ -15,8 +17,17 @@ abstract class AbstractResolver implements FluentResolverInterface
15
17
/** @var array */
16
18
private $ fullyLoadedSolutions = [];
17
19
20
+ /** @var bool */
21
+ private $ ignoreCase = true ;
22
+
23
+ public function __construct ()
24
+ {
25
+ $ this ->ignoreCase = version_compare (Kernel::VERSION , '3.3.0 ' ) < 0 ;
26
+ }
27
+
18
28
public function addSolution ($ id , $ solutionOrFactory , array $ aliases = [], array $ options = [])
19
29
{
30
+ $ id = $ this ->cleanIdOrAlias ($ id );
20
31
$ this ->fullyLoadedSolutions [$ id ] = false ;
21
32
$ this ->addAliases ($ id , $ aliases );
22
33
@@ -105,7 +116,7 @@ private function loadSolution($id)
105
116
private function addAliases ($ id , $ aliases )
106
117
{
107
118
foreach ($ aliases as $ alias ) {
108
- $ this ->aliases [$ alias ] = $ id ;
119
+ $ this ->aliases [$ this -> cleanIdOrAlias ( $ alias) ] = $ id ;
109
120
}
110
121
}
111
122
@@ -116,9 +127,16 @@ private static function isSolutionFactory($solutionOrFactory)
116
127
117
128
private function resolveAlias ($ alias )
118
129
{
130
+ $ alias = $ this ->cleanIdOrAlias ($ alias );
131
+
119
132
return isset ($ this ->aliases [$ alias ]) ? $ this ->aliases [$ alias ] : $ alias ;
120
133
}
121
134
135
+ private function cleanIdOrAlias ($ idOrAlias )
136
+ {
137
+ return $ this ->ignoreCase ? strtolower ($ idOrAlias ) : $ idOrAlias ;
138
+ }
139
+
122
140
/**
123
141
* @return mixed[]
124
142
*/
0 commit comments