PHPStan\Broker\Broker::resolveFunctionName PHP Method

resolveFunctionName() public method

public resolveFunctionName ( Name $nameNode, Scope $scope = null ) : string | null
$nameNode PhpParser\Node\Name
$scope PHPStan\Analyser\Scope
return string | null
    public function resolveFunctionName(\PhpParser\Node\Name $nameNode, Scope $scope = null)
    {
        $name = (string) $nameNode;
        if ($scope !== null && $scope->getNamespace() !== null && !$nameNode->isFullyQualified()) {
            $namespacedName = sprintf('%s\\%s', $scope->getNamespace(), $name);
            if (function_exists($namespacedName)) {
                return $namespacedName;
            }
        }
        if (function_exists($name)) {
            return $name;
        }
        return null;
    }

Usage Example

 /**
  * @param \PhpParser\Node\Expr\FuncCall $node
  * @param \PHPStan\Analyser\Scope $scope
  * @return string[]
  */
 public function processNode(Node $node, Scope $scope) : array
 {
     if (!$node->name instanceof \PhpParser\Node\Name) {
         return [];
     }
     if (!$this->broker->hasFunction($node->name, $scope)) {
         return [sprintf('Function %s not found.', (string) $node->name)];
     }
     $function = $this->broker->getFunction($node->name, $scope);
     $name = (string) $node->name;
     if ($function->getName() !== $this->broker->resolveFunctionName($node->name, $scope)) {
         return [sprintf('Call to function %s() with incorrect case: %s', $function->getName(), $name)];
     }
     return [];
 }