PhpParser\Node\Stmt\ClassLike::getMethod PHP Method

getMethod() public method

Gets method with the given name defined directly in this class/interface/trait.
public getMethod ( string $name ) : ClassMethod | null
$name string Name of the method (compared case-insensitively)
return ClassMethod | null Method node or null if the method does not exist
    public function getMethod($name)
    {
        $lowerName = strtolower($name);
        foreach ($this->stmts as $stmt) {
            if ($stmt instanceof ClassMethod && $lowerName === strtolower($stmt->name)) {
                return $stmt;
            }
        }
        return null;
    }

Usage Example

 private function importMethods(ClassLike $class, array $methods)
 {
     $stmts = [];
     foreach ($methods as $methodName => $methodArr) {
         if (count($methodArr) > 1) {
             echo "Too many implementations for {$methodName}\n";
         }
         foreach ($methodArr as $traitName => $method) {
             if (!$class->getMethod($method->name)) {
                 $stmts[] = $method;
             }
         }
     }
     return $stmts;
 }