diff --git a/app/RSpade/Core/Database/TypeRefs/Type_Ref_Registry.php b/app/RSpade/Core/Database/TypeRefs/Type_Ref_Registry.php index a3d0241e3..274e836c1 100755 --- a/app/RSpade/Core/Database/TypeRefs/Type_Ref_Registry.php +++ b/app/RSpade/Core/Database/TypeRefs/Type_Ref_Registry.php @@ -142,7 +142,7 @@ class Type_Ref_Registry $morph_map = []; foreach (static::$map_class_to_id as $class_name => $id) { // Try to resolve the fully qualified class name - $fqcn = Manifest::php_resolve_class($class_name); + $fqcn = static::_resolve_fqcn($class_name); if ($fqcn) { $morph_map[$class_name] = $fqcn; } @@ -253,7 +253,7 @@ class Type_Ref_Registry RsxCache::set(static::CACHE_KEY, static::$map_class_to_id, RsxCache::HOUR); // Update Laravel morph map - $fqcn = Manifest::php_resolve_class($class_name); + $fqcn = static::_resolve_fqcn($class_name); if ($fqcn) { Relation::morphMap([$class_name => $fqcn]); } @@ -270,7 +270,7 @@ class Type_Ref_Registry protected static function _validate_class(string $class_name): void { // Resolve the fully qualified class name - $fqcn = Manifest::php_resolve_class($class_name); + $fqcn = static::_resolve_fqcn($class_name); if (!$fqcn) { throw new RuntimeException( @@ -296,7 +296,7 @@ class Type_Ref_Registry */ protected static function _get_table_name(string $class_name): ?string { - $fqcn = Manifest::php_resolve_class($class_name); + $fqcn = static::_resolve_fqcn($class_name); if (!$fqcn) { return null; } @@ -309,4 +309,21 @@ class Type_Ref_Registry return null; } } + + /** + * Resolve a simple class name to its fully qualified class name + * + * @param string $class_name Simple class name (e.g., "Contact_Model") + * @return string|null FQCN or null if not found in manifest + */ + protected static function _resolve_fqcn(string $class_name): ?string + { + try { + $metadata = Manifest::php_get_metadata_by_class($class_name); + return $metadata['fqcn'] ?? null; + } catch (\RuntimeException $e) { + // Class not found in manifest + return null; + } + } }