@@ -81,17 +81,22 @@ public function allowFallbackClass(bool $allow = true)
8181 */
8282 protected function createInstance (string $ alias , array $ options ): RepositoryInterface
8383 {
84- [, $ classAlias ] = pluginSplit ($ alias );
85- $ options += [
86- 'name ' => Inflector::underscore ($ classAlias ),
87- 'className ' => Inflector::camelize ($ alias ),
88- ];
89- $ className = App::className ($ options ['className ' ], 'Model/Index ' , 'Index ' );
84+ if (!str_contains ($ alias , '\\' )) {
85+ [, $ classAlias ] = pluginSplit ($ alias );
86+ $ options += [
87+ 'name ' => Inflector::underscore ($ classAlias ),
88+ 'className ' => Inflector::camelize ($ alias ),
89+ ];
90+ } elseif (!isset ($ options ['name ' ])) {
91+ $ options ['className ' ] = $ alias ;
92+ }
93+
94+ $ className = App::className ($ options ['className ' ] ?? $ alias , 'Model/Index ' , 'Index ' );
9095 if ($ className ) {
9196 $ options ['className ' ] = $ className ;
9297 } elseif ($ this ->allowFallbackClass ) {
93- if (!isset ($ options ['name ' ]) && strpos ($ options ['className ' ], '\\' ) === false ) {
94- [, $ name ] = pluginSplit ($ options ['className ' ]);
98+ if (!isset ($ options ['name ' ]) && strpos ($ options ['className ' ] ?? $ alias , '\\' ) === false ) {
99+ [, $ name ] = pluginSplit ($ options ['className ' ] ?? $ alias );
95100 $ options ['name ' ] = Inflector::underscore ($ name );
96101 }
97102
0 commit comments