Skip to content

Commit 244c5fb

Browse files
committed
refactor: extract getDefinedInstance()
1 parent e3c223b commit 244c5fb

File tree

1 file changed

+32
-29
lines changed

1 file changed

+32
-29
lines changed

system/Config/Factories.php

Lines changed: 32 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)