pelican-panel-mirror/app/PHPStan/ForbiddenGlobalFunctionsRule.php
Charles 1900c04b71
Filament v4 🎉 (#1651)
Co-authored-by: RMartinOscar <40749467+RMartinOscar@users.noreply.github.com>
Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
Co-authored-by: Lance Pioch <git@lance.sh>
2025-09-08 13:12:33 -04:00

40 lines
1.0 KiB
PHP

<?php
namespace App\PHPStan;
use PhpParser\Node\Name;
use PhpParser\Node;
use PhpParser\Node\Expr\FuncCall;
use PHPStan\Analyser\Scope;
use PHPStan\Rules\Rule;
use PHPStan\Rules\RuleErrorBuilder;
class ForbiddenGlobalFunctionsRule implements Rule
{
/** @var string[] */
public const FORBIDDEN_FUNCTIONS = ['app', 'resolve'];
public function getNodeType(): string
{
return FuncCall::class;
}
public function processNode(Node $node, Scope $scope): array
{
/** @var FuncCall $node */
if ($node->name instanceof Name) {
$functionName = (string) $node->name;
if (in_array($functionName, self::FORBIDDEN_FUNCTIONS, true)) {
return [
RuleErrorBuilder::message(sprintf(
'Usage of global function "%s" is forbidden.',
$functionName,
))->identifier('myCustomRules.forbiddenGlobalFunctions')->build(),
];
}
}
return [];
}
}