PHPSTAN -Regeln zur Erkennung nicht zugelassener Anrufe und mehr, ohne den Code auszuführen.
Es gibt einige Funktionen, Methoden und Konstanten, die nicht im Produktionscode verwendet werden sollten. Ein gutes Beispiel ist var_dump() , es wird häufig verwendet, um Probleme schnell zu debuggen, sollte jedoch vor dem Beweis des Codes entfernt werden. Und manchmal ist es nicht.
Ein weiteres Beispiel wäre ein generischer Logger. Nehmen wir an, Sie verwenden eine der generischen Protokollierungsbibliotheken, aber Sie haben Ihren eigenen Logger, der weitere Informationen hinzufügt oder Daten saniert, bevor Sie den generischen Logger aufrufen. Ihr Code sollte den generischen Logger nicht direkt aufrufen, sondern stattdessen Ihren benutzerdefinierten Protokoller verwenden.
Diese Phpstan -Erweiterung erfasst eine solche Verwendung, falls konfiguriert. Es ist zu beachten, dass diese Erweiterung keine Möglichkeit ist, feindliche Entwickler zu verteidigen oder zu erkennen, da sie die Aufrufe z. B. verschleiern können. Diese Erweiterung soll ein weiteres Augenpaar sein und Ihre eigenen Fehler erkennen. Sie zielt nicht darauf ab, alles zu erkennen.
Tests liefern Beispiele, was derzeit erkannt wird. Wenn es nicht durch Tests abgedeckt ist, wird es möglicherweise sein, wird es jedoch höchstwahrscheinlich nicht erkannt. *Test.php -Dateien sind die Tests, beginnen mit diesen, der analysierte Testcode befindet sich in SRC, erforderliche Testklassen in LIBs.
Fühlen Sie sich frei, Probleme einzureichen oder Pull -Anfragen zu erstellen, wenn Sie weitere Anrufe erkennen müssen.
Installieren Sie die Erweiterung mit Composer:
composer require --dev spaze/phpstan-disallowed-calls
PHPSTAN, das Tool zur statischen Analyse von PHP, ist eine Anforderung.
Wenn Sie Phpstan/Extension-Installer verwenden, sind Sie alle festgelegt und können zur Konfiguration überspringen.
Für die manuelle Installation fügen Sie dies Ihrem phpstan.neon hinzu:
includes :
- vendor/spaze/phpstan-disallowed-calls/extension.neon Sie können mit gebündelten Konfigurationsdateien beginnen.
Die Erweiterung unterstützt auch vielseitige benutzerdefinierte Regeln.
Angenommen, Sie haben foo() mit benutzerdefinierten Regeln nicht zugelassen. Sie möchten es jedoch wiederzucken, wenn Sie in Ihrem benutzerdefinierten Wrapper verwendet werden oder wenn der erste Parameter gleich einen angegebenen Wert ist oder nicht. Die Erweiterung bietet mehrere Möglichkeiten, dies zu tun:
Neuaufbau Attribute verwendet eine ähnliche Konfiguration.
Verwenden Sie den bereitgestellten Generator, um einen Konfigurationsausschnitt aus PHP disable_functions & disable_classes -Konfigurationsanweisungen zu generieren.
------ --------------------------------------------------------
Line libraries/Report/Processor/CertificateTransparency.php
------ --------------------------------------------------------
116 Calling var_dump() is forbidden, use logger instead
------ --------------------------------------------------------
Funktionsnamen, Methodennamen, Klassennamen und Namespaces werden unabhängig von ihrem Fall übereinstimmen (nicht zugesagt, dass print_r auch print_R -Anrufe finden), während alles andere wie Konstanten, Dateinamen und Pfade nicht sind.
Sie können diese Erweiterung auch ohne andere Phpstan -Regeln verwenden. Dies kann nützlich sein, wenn Sie beispielsweise einen Code von Drittanbietern für einige Anrufe oder die Verwendung von etwas überprüfen möchten.
Wenn Sie einen Beitrag leisten möchten (fantastisch, danke!), Sollten Sie Tests für Ihre Beiträge hinzufügen/ausführen. Installieren Sie zuerst die Devisenabhängigkeiten durch Ausführen composer install und führen Sie dann Phpunit -Tests mit composer test aus. Siehe scripts in composer.json . Tests werden auch auf GitHub mit Aktionen für jeden Push durchgeführt.
Sie können Probleme mit dem Codierungsstil automatisch beheben, indem Sie composer cs-fix ausführen.
Es gibt ein ähnliches Projekt mit einer etwas anderen Konfiguration, die fast gleichzeitig erstellt wurde (nur ein paar Tage Unterschied): Phpstan verbotener Code.