PHP_CodeSniffer – Eine Bibliothek zur Verbesserung Ihrer PHP-Codierungsstandards
Möchten Sie Ihre PHP-Codierungsstandards verbessern? Natürlich ja. Egal, ob Sie ein neuerer oder erfahrener PHP-Entwickler sind, jeder möchte seine Codierungsstandards verbessern.
Aber wie?
Nun, im Internet stehen mehrere Ressourcen zur Verfügung, die Sie lesen und mit der Implementierung beginnen können.
Es gibt noch eine weitere Lösung, die es nicht erfordert, über Standardcodierung zu lesen. Stattdessen erhalten Sie Vorschläge zur Verbesserung der Laufzeit Ihrer Standards, indem Sie sich Ihre PHP-Datei ansehen. Dieser Weg ist besser, da Sie den klaren Vorschlag zusammen mit der Zeilennummer erhalten.
Einführung in PHP_CodeSniffer
Wie der Name schon sagt, riecht PHP_CodeSniffer den Code in Ihren Dateien oder Ordnern. Wo auch immer es den schlechten Code riecht, gibt es Ihnen Bericht, wo sich der schlechte Code befindet und welche Schritte Sie unternehmen sollten, um ihn zu korrigieren. PHP_CodeSniffer verhält sich wie Ihr PHP-Code-Checker.
Es ist eine sehr empfehlenswerte Bibliothek für einen PHP-Programmierer. Während Sie an einem PHP-Projekt arbeiten, sollten Sie Ihren Code erst dann an den Endkunden liefern, wenn Sie mit den von PHP_CodeSniffer vorgeschlagenen PHP-Codierungsstandards fertig sind.
Schließlich sollen PHP-Programmierer einen besseren Code liefern und PHP_CodeSniffer hilft Ihnen dabei, besser zu programmieren.
Installieren Sie PHP_CodeSniffer mit Composer
Composer ist ein Abhängigkeitsmanager für PHP. Damit können Sie die für Ihr Projekt benötigte Bibliothek installieren/aktualisieren.
Sie können PHP_CodeSniffer im Stammverzeichnis Ihres Projekts installieren. Ich empfehle jedoch, im Stammverzeichnis einen Ordner ‘php_codesniffer’ zu erstellen und die Bibliothek in diesem Ordner zu installieren.
Um den PHP_CodeSniffer mit Composer zu installieren, öffnen Sie die Eingabeaufforderung im Verzeichnis ‘php_codesniffer’ und führen Sie den folgenden Befehl aus.
composer require "squizlabs/php_codesniffer=*"
Lassen Sie uns unsere PHP-Codierungsstandards überprüfen
Gehen Sie als Nächstes php_codesniffer/vendor/bin
von der Eingabeaufforderung in das Verzeichnis. Von diesem bin-Ordner aus werden wir unsere PHP-Codierungsstandards mit dem PHP_CodeSniffer vergleichen.
Nehmen wir zum Beispiel an, wir haben eine Datei namens index.php in Ihrem Projekt. Meine Datei index.php enthält den folgenden Code.
<?php
require_once ("vendor/autoload.php");
require_once ("config.php");
TinifysetKey(TINIFY_KEY);
$source = TinifyfromFile("large.jpg");
$resized = $source->resize(
array(
"method" => "cover",
"width" => 150,
"height" => 100
));
$resized->toFile("thumbnail1.jpg");
echo "Image resized.";
$bool = true;
?>
Dieser Code wird für die Größenänderung von Bildern in PHP mit der TinyPNG-Bibliothek verwendet. Unser Code funktioniert einwandfrei und liefert ein erwartetes Ergebnis. Aber wir haben einige Codierungsstandards in unserer Datei übersehen.
Lassen Sie uns herausfinden, welcher Standard in der obigen Datei fehlt.
Wir werden diese Datei mit PHP_CodeSniffer vergleichen, indem wir den folgenden Befehl ausführen.
phpcs --standard=PEAR /path/to/your/file
Wir arbeiten unter Windows, daher würde ein Befehl in unserem Fall wie folgt aussehen.
phpcs --standard=PEAR D:wampwwwapitinypngindex.php
Hier bedeutet ‘–standard=PEAR’, dass unsere Datei den von PEAR festgelegten Standard überprüft .
Nachdem wir den obigen Befehl ausgeführt hatten, erhielten wir einige Fehler bezüglich der Codierungsstandards.
Korrigieren Sie den Kodex mithilfe von Richtlinien
Nehmen wir ein Fehlerbeispiel.
Der zweite Fehler, der besagt, dass ‘require_once’ eine Anweisung ist, keine Funktion: Es sind keine Klammern erforderlich
Durch diesen Fehler erfahren wir den Standard zum Einbinden externer Dateien.
Unser untenstehender Code
require_once ("vendor/autoload.php");
require_once ("config.php");
sollte durch ersetzen
require_once "vendor/autoload.php";
require_once "config.php";
Dies ist ein Beispiel für die Korrektur von Code. In Ihrem Fall finden Sie möglicherweise einige andere Fehler. Sie sollten es korrigieren, indem Sie den Anweisungen folgen, die Sie erhalten haben.
Die PHP_CodeSniffer-Bibliothek bietet einen Befehl, der automatisch Verstöße gegen die Codierungsstandards korrigiert. Denken Sie daran, dass dieser Befehl nicht alle Fehler behebt. Es kümmert sich um einige kleinere Fehler wie Einrückung, schließende Klammern usw.
Wenn Sie sich den obigen Screenshot ansehen, werden Sie feststellen, dass in unserer Datei insgesamt 7 Fehler gefunden wurden. Siehe nach der Fehlerliste die Zeile
‘PHPCBF’ KANN DIE 6 MARKIERTEN SNIFF-VERLETZUNGEN AUTOMATISCH BEHEBEN
Der erste Fehler, der mit einem fehlenden Datei-Dokumentkommentar zusammenhängt, müssen wir uns um diesen Doc-Kommentar kümmern. Der Befehl ‘PHPCBF’ wird es nicht korrigieren.
Nachdem wir das gesagt haben, schreiben wir den Befehl dafür.
phpcbf --standard=PEAR D:wampwwwapitinypngindex.php
Im Screenshot können Sie sehen, dass 6 Fehler behoben wurden und 1 übrig bleibt. Der verbleibende Fehler hängt mit dem Dateidokumentkommentar zusammen.
Wir fügen also die Dateikommentare hinzu und unser endgültiger Code sieht wie folgt aus.
<?php
/**
* This file will generate the resize version of an image
*
* PHP version 5.6.25
*
* @category Resize_Image
* @package TinyPNG
* @author Sajid <[email protected]>
* @license http://www.php.net/license/3_01.txt PHP License 3.01
* @link https://artisansweb.net/resize-image-php-using-tinypng
*/
require_once "vendor/autoload.php";
require_once "config.php";
TinifysetKey(TINIFY_KEY);
$source = TinifyfromFile("large.jpg");
$resized = $source->resize(
array(
"method" => "cover",
"width" => 150,
"height" => 100
)
);
$resized->toFile("thumbnail1.jpg");
echo "Image resized.";
$bool = true;
?>
Wenn wir nun das ‘phpcs’-Skript ausführen, erhalten wir keine Fehler bei den PHP-Codierungsstandards.
Hinweis: PHP_CodeSniffer validiert auch Ihre JS- und CSS-Dateien.