Lisphp_Runtime_Use::dispatch PHP Method

dispatch() public method

public dispatch ( Lisphp_Form $name )
$name Lisphp_Form
    public function dispatch(Lisphp_Form $name)
    {
        if ($name instanceof Lisphp_Symbol) {
            $phpname = $name = $name->symbol;
        } else {
            $phpname = $name[0]->symbol;
            $name = $name[1]->symbol;
        }
        $phpname = str_replace('-', '_', $phpname);
        try {
            if (preg_match('|^<(.+?)>$|', $phpname, $matches)) {
                $phpname = substr($phpname, 1, -1);
                $class = new Lisphp_Runtime_PHPClass($phpname);
                foreach ($class->getStaticMethods() as $methodName => $method) {
                    $objs["{$name}/{$methodName}"] = $method;
                }
                $objs[$name] = $class;
                return $objs;
            }
            if (preg_match('|^\\+(.+?)\\+$|', $phpname, $matches)) {
                $phpname = substr($phpname, 1, -1);
                $objs[$name] = constant($phpname);
                return $objs;
            }
            return array($name => new Lisphp_Runtime_PHPFunction($phpname));
        } catch (UnexpectedValueException $e) {
            throw new InvalidArgumentException($e);
        }
    }
Lisphp_Runtime_Use