@@ -141,41 +141,18 @@ public static function __callStatic(string $component, array $arguments)
141141 }
142142
143143 // Check for an existing definition
144- if (isset (self ::$ aliases [$ options ['component ' ]][$ alias ])) {
145- $ class = self ::$ aliases [$ options ['component ' ]][$ alias ];
146-
147- // Need to verify if the shared instance matches the request
148- if (self ::verifyInstanceOf ($ options , $ class )) {
149- // Check for an existing instance
150- if (isset (self ::$ instances [$ options ['component ' ]][$ class ])) {
151- return self ::$ instances [$ options ['component ' ]][$ class ];
152- }
153-
154- self ::$ instances [$ options ['component ' ]][$ class ] = new $ class (...$ arguments );
155-
156- return self ::$ instances [$ options ['component ' ]][$ class ];
157-
158- }
144+ $ instance = self ::getDefinedInstance ($ options , $ alias , $ arguments );
145+ if ($ instance !== null ) {
146+ return $ instance ;
159147 }
160148
161149 // Check for an existing Config definition with basename.
162150 if (self ::isConfig ($ options ['component ' ])) {
163151 $ basename = self ::getBasename ($ alias );
164152
165- if (isset (self ::$ aliases [$ options ['component ' ]][$ basename ])) {
166- $ class = self ::$ aliases [$ options ['component ' ]][$ basename ];
167-
168- // Need to verify if the shared instance matches the request
169- if (self ::verifyInstanceOf ($ options , $ class )) {
170- // Check for an existing instance
171- if (isset (self ::$ instances [$ options ['component ' ]][$ class ])) {
172- return self ::$ instances [$ options ['component ' ]][$ class ];
173- }
174-
175- self ::$ instances [$ options ['component ' ]][$ class ] = new $ class (...$ arguments );
176-
177- return self ::$ instances [$ options ['component ' ]][$ class ];
178- }
153+ $ instance = self ::getDefinedInstance ($ options , $ basename , $ arguments );
154+ if ($ instance !== null ) {
155+ return $ instance ;
179156 }
180157 }
181158
@@ -195,6 +172,32 @@ public static function __callStatic(string $component, array $arguments)
195172 return self ::$ instances [$ options ['component ' ]][$ class ];
196173 }
197174
175+ /**
176+ * Gets the defined instance. If not exists, creates new one.
177+ *
178+ * @return object|null
179+ */
180+ private static function getDefinedInstance (array $ options , string $ alias , array $ arguments )
181+ {
182+ if (isset (self ::$ aliases [$ options ['component ' ]][$ alias ])) {
183+ $ class = self ::$ aliases [$ options ['component ' ]][$ alias ];
184+
185+ // Need to verify if the shared instance matches the request
186+ if (self ::verifyInstanceOf ($ options , $ class )) {
187+ // Check for an existing instance
188+ if (isset (self ::$ instances [$ options ['component ' ]][$ class ])) {
189+ return self ::$ instances [$ options ['component ' ]][$ class ];
190+ }
191+
192+ self ::$ instances [$ options ['component ' ]][$ class ] = new $ class (...$ arguments );
193+
194+ return self ::$ instances [$ options ['component ' ]][$ class ];
195+ }
196+ }
197+
198+ return null ;
199+ }
200+
198201 /**
199202 * Is the component Config?
200203 *
0 commit comments