Browse Source

Cleanup registry classes.

_resolveClassName() now only deals with strings.
ADmad 7 years ago
parent
commit
c93baaf1ac

+ 3 - 7
src/Cache/CacheRegistry.php

@@ -33,15 +33,11 @@ class CacheRegistry extends ObjectRegistry
      *
      * Part of the template method for Cake\Core\ObjectRegistry::load()
      *
-     * @param string|object $class Partial classname to resolve.
-     * @return string|object|null Either the correct classname or null.
+     * @param string $class Partial classname to resolve.
+     * @return string|null Either the correct classname or null.
      */
-    protected function _resolveClassName($class)
+    protected function _resolveClassName(string $class): ?string
     {
-        if (is_object($class)) {
-            return $class;
-        }
-
         return App::className($class, 'Cache/Engine', 'Engine');
     }
 

+ 5 - 5
src/Console/HelperRegistry.php

@@ -53,16 +53,16 @@ class HelperRegistry extends ObjectRegistry
      * Part of the template method for Cake\Core\ObjectRegistry::load()
      *
      * @param string $class Partial classname to resolve.
-     * @return string|object|null Either the correct class name or null.
+     * @return string|null Either the correct class name or null.
      */
-    protected function _resolveClassName($class)
+    protected function _resolveClassName(string $class): ?string
     {
         $name = App::className($class, 'Command/Helper', 'Helper');
-        if ($name) {
-            return $name;
+        if ($name === null) {
+            return App::className($class, 'Shell/Helper', 'Helper');
         }
 
-        return App::className($class, 'Shell/Helper', 'Helper');
+        return $name;
     }
 
     /**

+ 2 - 2
src/Console/TaskRegistry.php

@@ -49,9 +49,9 @@ class TaskRegistry extends ObjectRegistry
      * Part of the template method for Cake\Core\ObjectRegistry::load()
      *
      * @param string $class Partial classname to resolve.
-     * @return string|object|null Either the correct class name or null.
+     * @return string|null Either the correct class name or null.
      */
-    protected function _resolveClassName($class)
+    protected function _resolveClassName(string $class): ?string
     {
         return App::className($class, 'Shell/Task', 'Task');
     }

+ 2 - 2
src/Controller/ComponentRegistry.php

@@ -85,9 +85,9 @@ class ComponentRegistry extends ObjectRegistry implements EventDispatcherInterfa
      * Part of the template method for Cake\Core\ObjectRegistry::load()
      *
      * @param string $class Partial classname to resolve.
-     * @return string|object|null Either the correct class name or null.
+     * @return string|null Either the correct class name or null.
      */
-    protected function _resolveClassName($class)
+    protected function _resolveClassName(string $class): ?string
     {
         return App::className($class, 'Controller/Component', 'Component');
     }

+ 12 - 7
src/Core/ObjectRegistry.php

@@ -90,11 +90,16 @@ abstract class ObjectRegistry implements Countable, IteratorAggregate
             return $this->_loaded[$name];
         }
 
-        $className = $this->_resolveClassName($objectName);
-        if ($className === null || (is_string($className) && !class_exists($className))) {
-            [$plugin, $objectName] = pluginSplit($objectName);
-            $this->_throwMissingClassError($objectName, $plugin);
+        if (is_string($objectName)) {
+            $className = $this->_resolveClassName($objectName);
+            if ($className === null) {
+                [$plugin, $objectName] = pluginSplit($objectName);
+                $this->_throwMissingClassError($objectName, $plugin);
+            }
+        } else {
+            $className = $objectName;
         }
+
         $instance = $this->_create($className, $name, $config);
         $this->_loaded[$name] = $instance;
 
@@ -155,10 +160,10 @@ abstract class ObjectRegistry implements Countable, IteratorAggregate
     /**
      * Should resolve the classname for a given object type.
      *
-     * @param string|object $class The class to resolve or object.
-     * @return string|object|null The resolved name or false for failure.
+     * @param string $class The class to resolve.
+     * @return string|null The resolved name or null for failure.
      */
-    abstract protected function _resolveClassName($class);
+    abstract protected function _resolveClassName(string $class): ?string;
 
     /**
      * Throw an exception when the requested object name is missing.

+ 3 - 7
src/Datasource/ConnectionRegistry.php

@@ -32,15 +32,11 @@ class ConnectionRegistry extends ObjectRegistry
      *
      * Part of the template method for Cake\Core\ObjectRegistry::load()
      *
-     * @param string|object $class Partial classname to resolve.
-     * @return string|null|object Either the correct class name or null.
+     * @param string $class Partial classname to resolve.
+     * @return string|null Either the correct class name or null.
      */
-    protected function _resolveClassName($class)
+    protected function _resolveClassName(string $class): ?string
     {
-        if (is_object($class)) {
-            return $class;
-        }
-
         return App::className($class, 'Datasource');
     }
 

+ 3 - 7
src/Log/LogEngineRegistry.php

@@ -31,15 +31,11 @@ class LogEngineRegistry extends ObjectRegistry
      *
      * Part of the template method for Cake\Core\ObjectRegistry::load()
      *
-     * @param string|object $class Partial classname to resolve.
-     * @return string|null|object Either the correct class name or null.
+     * @param string $class Partial classname to resolve.
+     * @return string|null Either the correct class name or null.
      */
-    protected function _resolveClassName($class)
+    protected function _resolveClassName(string $class): ?string
     {
-        if (is_object($class)) {
-            return $class;
-        }
-
         return App::className($class, 'Log/Engine', 'Log');
     }
 

+ 3 - 7
src/Mailer/TransportRegistry.php

@@ -31,15 +31,11 @@ class TransportRegistry extends ObjectRegistry
      *
      * Part of the template method for Cake\Core\ObjectRegistry::load()
      *
-     * @param string|\Cake\Mailer\AbstractTransport $class Partial classname to resolve or transport instance.
-     * @return string|\Cake\Mailer\AbstractTransport|null Either the correct classname or null.
+     * @param string $class Partial classname to resolve or transport instance.
+     * @return string|null Either the correct classname or null.
      */
-    protected function _resolveClassName($class)
+    protected function _resolveClassName(string $class): ?string
     {
-        if (is_object($class)) {
-            return $class;
-        }
-
         return App::className($class, 'Mailer/Transport', 'Transport');
     }
 

+ 1 - 1
src/ORM/BehaviorRegistry.php

@@ -104,7 +104,7 @@ class BehaviorRegistry extends ObjectRegistry implements EventDispatcherInterfac
      * @param string $class Partial classname to resolve.
      * @return string|null Either the correct class name or null.
      */
-    protected function _resolveClassName($class)
+    protected function _resolveClassName(string $class): ?string
     {
         return static::className($class);
     }

+ 1 - 1
src/View/HelperRegistry.php

@@ -108,7 +108,7 @@ class HelperRegistry extends ObjectRegistry implements EventDispatcherInterface
      * @param string $class Partial classname to resolve.
      * @return string|null Either the correct class name or null.
      */
-    protected function _resolveClassName($class)
+    protected function _resolveClassName(string $class): ?string
     {
         return App::className($class, 'View/Helper', 'Helper');
     }