/** * Resolve an object from an object and a formard ref path * * @param CMbObject $object The object to resolve forward ref object * @param string $field The path to resolve * * @return array|null */ static function resolveObjectFieldStatic(CMbObject $object, $field) { $parts = explode("-", $field); if (count($parts) == 1) { return array("object" => $object, "field" => $parts[0]); } else { $subparts = explode(".", $parts[0]); $_field = $subparts[0]; /** @var CRefSpec $_spec */ $_spec = $object->_specs[$_field]; if (count($subparts) <= 1 && !$_spec->class) { return null; } return array("object" => $object->loadFwdRef($_field, true), "field" => $parts[1]); } }