Lisphp_Runtime_PHPClass::getStaticMethods PHP Method

getStaticMethods() public method

public getStaticMethods ( )
    public function getStaticMethods()
    {
        $methods = array();
        foreach ($this->class->getMethods() as $method) {
            if (!$method->isStatic() || !$method->isPublic()) {
                continue;
            }
            $name = $method->getName();
            $callback = array($this->class->getName(), $name);
            $methods[$name] = new Lisphp_Runtime_PHPFunction($callback);
        }
        return $methods;
    }

Usage Example

Example #1
0
 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 = str_replace('/', '_', $matches[1] . $matches[2]);
             $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 = str_replace('/', '_', $matches[1] . $matches[2]);
             $objs[$name] = constant($phpname);
             return $objs;
         }
         return array($name => new Lisphp_Runtime_PHPFunction($phpname));
     } catch (UnexpectedValueException $e) {
         throw new InvalidArgumentException($e);
     }
 }
All Usage Examples Of Lisphp_Runtime_PHPClass::getStaticMethods