@@ -51,13 +51,14 @@ public function register($name, $field)
51
51
*/
52
52
public function instance ($ name , $ parent = null , $ fresh = false )
53
53
{
54
- $ typeName = $ this ->getName ($ name );
54
+ $ instanceName = $ this ->instanceName ($ name );
55
+ $ typeName = $ this ->typeName ($ name );
55
56
56
- if (! $ fresh && $ this ->instances ->has ($ typeName )) {
57
- return $ this ->instances ->get ($ typeName );
57
+ if (! $ fresh && $ this ->instances ->has ($ instanceName )) {
58
+ return $ this ->instances ->get ($ instanceName );
58
59
}
59
60
60
- $ key = $ parent ? $ parent .'. ' .$ typeName : $ typeName ;
61
+ $ key = $ parent ? $ parent .'. ' .$ instanceName : $ instanceName ;
61
62
$ nodeType = $ this ->getSchema ()->typeInstance ($ typeName );
62
63
$ instance = $ this ->getInstance ($ name , $ nodeType );
63
64
@@ -77,12 +78,12 @@ public function getInstance($name, ObjectType $nodeType)
77
78
{
78
79
$ isConnection = $ name instanceof Connection;
79
80
$ connection = new RelayConnectionType ();
80
- $ typeName = $ this ->getName ($ name );
81
- $ connectionName = (!preg_match ('/Connection$/ ' , $ typeName )) ? $ typeName .'Connection ' : $ typeName ;
81
+ $ instanceName = $ this ->instanceName ($ name );
82
+ $ connectionName = (!preg_match ('/Connection$/ ' , $ instanceName )) ? $ instanceName .'Connection ' : $ instanceName ;
82
83
$ connection ->setName (studly_case ($ connectionName ));
83
84
84
85
$ pageInfoType = $ this ->getSchema ()->typeInstance ('pageInfo ' );
85
- $ edgeType = $ this ->getSchema ()->edgeInstance ($ typeName , $ nodeType );
86
+ $ edgeType = $ this ->getSchema ()->edgeInstance ($ instanceName , $ nodeType );
86
87
87
88
$ connection ->setEdgeType ($ edgeType );
88
89
$ connection ->setPageInfoType ($ pageInfoType );
@@ -107,7 +108,22 @@ public function getInstance($name, ObjectType $nodeType)
107
108
* @param mixed $name
108
109
* @return string
109
110
*/
110
- protected function getName ($ name )
111
+ protected function instanceName ($ name )
112
+ {
113
+ if ($ name instanceof Connection) {
114
+ return strtolower (get_class ($ name ));
115
+ }
116
+
117
+ return $ name ;
118
+ }
119
+
120
+ /**
121
+ * Extract name.
122
+ *
123
+ * @param mixed $name
124
+ * @return string
125
+ */
126
+ protected function typeName ($ name )
111
127
{
112
128
if ($ name instanceof Connection) {
113
129
return $ name ->type ();
0 commit comments