fix alias

This commit is contained in:
joyqi 2021-09-10 02:28:15 +08:00
parent b5167dbe5d
commit 26e8077e0a

View File

@ -82,39 +82,30 @@ namespace Typecho {
// detect if class is predefined
if (strpos($className, '\\') !== false) {
if ($isDefinedAlias) {
$nativeClass = array_search('\\' . ltrim($className, '\\'), __TYPECHO_CLASS_ALIASES__);
$alias = array_search('\\' . ltrim($className, '\\'), __TYPECHO_CLASS_ALIASES__);
}
$nativeClass = empty($nativeClass) ? Common::nativeClassName($className) : $nativeClass;
if (
class_exists($nativeClass, false)
|| interface_exists($nativeClass, false)
|| trait_exists($nativeClass, false)
) {
class_alias($nativeClass, $className, false);
return;
}
$alias = empty($alias) ? Common::nativeClassName($className) : $alias;
$path = str_replace('\\', '/', $className);
} elseif (strpos($className, '_') !== false || $isAlias) {
$namespaceClass = $isAlias ? __TYPECHO_CLASS_ALIASES__[$className]
$alias = $isAlias ? __TYPECHO_CLASS_ALIASES__[$className]
: '\\' . str_replace('_', '\\', $className);
if (
class_exists($namespaceClass, false)
|| interface_exists($namespaceClass, false)
|| trait_exists($namespaceClass, false)
) {
class_alias($namespaceClass, $className, false);
return;
}
$path = str_replace('\\', '/', $namespaceClass);
$path = str_replace('\\', '/', $alias);
} else {
$path = $className;
}
if (
isset($alias)
&& (class_exists($alias, false)
|| interface_exists($alias, false)
|| trait_exists($alias, false))
) {
class_alias($alias, $className, false);
}
// load class file
$path .= '.php';
$defaultFile = __TYPECHO_ROOT_DIR__ . '/var/' . $path;
@ -131,12 +122,6 @@ namespace Typecho {
}
}
if (isset($nativeClass)) {
$alias = $nativeClass;
} elseif (isset($namespaceClass)) {
$alias = $namespaceClass;
}
if (isset($alias)) {
$classLoaded = class_exists($className, false)
|| interface_exists($className, false)