Example #1
0
function callFn($fn, $params)
{
    $n = 0;
    foreach ($fn->getParameters() as $param) {
        if (!$param->isOptional()) {
            ++$n;
        }
    }
    $showUsage = false;
    if (count($params) < $n) {
        $showUsage = true;
        print "*** param error: minimal count of params is {$n}\n";
    }
    foreach ($params as &$p) {
        if ($p == "null") {
            $p = null;
        } elseif ($p == "?") {
            $showUsage = true;
            break;
        }
    }
    if ($showUsage) {
        print "Usage:\n";
        showMethod($fn);
        return;
    }
    $fn->invokeArgs(new WebAPI(true), $params);
}
Example #2
0
function showMethods($cls, $keyword = null)
{
    if ($keyword) {
        $keyword = strtolower($keyword);
    }
    echo "Available method: \n";
    $cls = new ReflectionClass($cls);
    foreach ($cls->getMethods() as $m) {
        $doc = $m->getDocComment();
        if ($doc !== false && strstr($doc, "@api") !== false) {
            showMethod($m, $keyword);
        }
    }
}
Example #3
0
                $h->execSql($s);
            } else {
                if (preg_match('/^(\\w+)\\s*\\((.*)\\)/', $s, $ms) || preg_match('/^(\\w+)\\s*$/', $s, $ms)) {
                    try {
                        $fn = $ms[1];
                        @($param = $ms[2] ?: '');
                        $refm = new ReflectionMethod('UpgHelper', $ms[1]);
                        try {
                            eval('$r = $h->' . "{$fn}({$param});");
                            if (is_scalar($r)) {
                                echo "=== Return {$r}\n";
                            }
                        } catch (Exception $ex) {
                            print "*** error: " . $ex->getMessage() . "\n";
                            echo $ex->getTraceAsString();
                            showMethod($refm);
                        }
                    } catch (ReflectionException $ex) {
                        echo "*** unknown call. try help()\n";
                    }
                } else {
                    echo "*** bad format. try help()\n";
                }
            }
        }
    } catch (Exception $e) {
        echo $e;
        echo "\n";
    }
}
function upgradeAuto()