public static PhpArray GetClassMethods(DTypeDesc caller, object classNameOrObject) { ScriptContext context = ScriptContext.CurrentContext; DTypeDesc type = ClassNameOrObjectToType(context, null, caller, classNameOrObject, true); if (type == null) { return(null); } // determine the calling type //DTypeDesc caller = PhpStackTrace.GetClassContext(); if (caller != null && caller.IsUnknown) { caller = PhpStackTrace.GetClassContext(); } PhpArray result = new PhpArray(); foreach (KeyValuePair <Name, DRoutineDesc> pair in type.EnumerateMethods(caller)) { result.Add(pair.Key.ToString()); } return(result); }
public virtual object getMethods(ScriptContext /*!*/ context, object filter = null) { if (typedesc == null) { return(false); } if (filter != null && filter != Arg.Default) { PhpException.ArgumentValueNotSupported("filter", filter); } PhpArray result = new PhpArray(); foreach (KeyValuePair <Name, DRoutineDesc> method in typedesc.EnumerateMethods()) { result.Add(new ReflectionMethod(context, true) { dtype = method.Value.DeclaringType, method = method.Value, }); } return(result); }