pelican-panel-mirror/app/PHPStan/ForbiddenGlobalFunctionsRule.php
Lance Pioch da195fd2fe
PHPstan updates (#1047)
* Not found property rule

* Make these “better”

* Day 1

* Day 2

* Day 3

* Dat 4

* Remove disabled check

* Day 4 continued

* Run pint

* Final changes hopefully

* Pint fixes

* Fix again

* Reset these

* Update app/Filament/Admin/Pages/Health.php

Co-authored-by: MartinOscar <40749467+rmartinoscar@users.noreply.github.com>

* Update app/Traits/CheckMigrationsTrait.php

Co-authored-by: MartinOscar <40749467+rmartinoscar@users.noreply.github.com>

---------

Co-authored-by: MartinOscar <40749467+rmartinoscar@users.noreply.github.com>
2025-03-03 14:41:19 -05:00

39 lines
1.0 KiB
PHP

<?php
namespace App\PHPStan;
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 Node\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 [];
}
}