@@ -99,23 +99,29 @@ public static function componentClass(string $componentClassName, $options = [])
9999 protected static function _componentManager ($ fullClass , Dispatch $ dispatch = null , $ options = []): ResourceManager
100100 {
101101 $ class = ltrim ($ fullClass , '\\' );
102- if ($ dispatch )
102+ if (! $ dispatch )
103103 {
104- $ maxPrefix = $ maxAlias = '' ;
105- $ prefixLen = 0 ;
106- foreach ($ dispatch ->getComponentAliases () as $ alias => $ namespace )
104+ $ dispatch = Dispatch::instance ();
105+ if ($ dispatch === null )
107106 {
108- $ trimNs = ltrim ($ namespace , '\\' );
109- $ len = strlen ($ trimNs );
110- if (Strings::startsWith ($ class , $ trimNs ) && $ len > $ prefixLen )
111- {
112- $ maxPrefix = $ trimNs ;
113- $ prefixLen = $ len ;
114- $ maxAlias = $ alias ;
115- }
107+ throw new RuntimeException ("Dispatch must be available to use the component manager " );
116108 }
117- $ class = str_replace ($ maxPrefix , $ maxAlias , $ class );
118109 }
110+
111+ $ maxPrefix = $ maxAlias = '' ;
112+ $ prefixLen = 0 ;
113+ foreach ($ dispatch ->getComponentAliases () as $ alias => $ namespace )
114+ {
115+ $ trimNs = ltrim ($ namespace , '\\' );
116+ $ len = strlen ($ trimNs );
117+ if (Strings::startsWith ($ class , $ trimNs ) && $ len > $ prefixLen )
118+ {
119+ $ maxPrefix = $ trimNs ;
120+ $ prefixLen = $ len ;
121+ $ maxAlias = $ alias ;
122+ }
123+ }
124+ $ class = str_replace ($ maxPrefix , $ maxAlias , $ class );
119125 $ parts = explode ('\\' , $ class );
120126 array_unshift ($ parts , count ($ parts ));
121127
@@ -153,7 +159,7 @@ public function getResourceUri($relativeFullPath): ?string
153159 public function getRelativeHash ($ filePath )
154160 {
155161 return Dispatch::instance ()->generateHash (Dispatch::instance ()->calculateRelativePath ($ filePath ), 4 );
156- }
162+ }
157163
158164 /**
159165 * @param $relativePath
0 commit comments