Heim > Artikel > Backend-Entwicklung > Verwendung von PHP CodeSniffer mit WordPress: Installation und Verwendung von PHP CodeSniffer
Im ersten Artikel dieser Serie haben wir Code-Smells definiert und uns einige Beispiele angesehen, um zu verstehen, was sie sind und wie wir sie umgestalten können, um die Codequalität zu verbessern. Rückruf:
[A] Code-Gerüche, im Computerprogrammcode auch als schlechte Gerüche bekannt, sind alle Symptome im Quellcode eines Programms, die auf ein tieferes Problem hinweisen können.
Irgendwann arbeiten wir an der Implementierung WordPress-spezifischer Code-Sniffing-Regeln, aber vorher ist es wichtig, sich mit PHP CodeSniffer vertraut zu machen.
In diesem Artikel erfahren wir, was PHP CodeSniffer ist, wie man es installiert, wie man es mit einem Beispielskript ausführt und wie man das Skript umgestaltet. Dann schauen wir uns an, wie wir zum WordPress-spezifischen Code übergehen.
Wenn Sie eine lokale Entwicklungsumgebung eingerichtet haben, ist das großartig; wenn nicht, ist das in Ordnung. Ich stelle Ihnen einige Links zur Verfügung, damit Sie schnell loslegen können.
Nachdem dies gesagt ist, fangen wir an.
Bevor Sie beginnen, ist es wichtig, über eine Art lokale Entwicklungsumgebung zu verfügen, auch wenn diese nur eine Kopie des PHP-Interpreters enthält.
Bitte beachten Sie, dass PHP möglicherweise bereits installiert ist, wenn Sie eine Variante von Linux oder OS X verwenden. Wenn Sie dies tun, müssen Sie sich in diesem Abschnitt um nichts anderes kümmern. Um festzustellen, ob PHP installiert ist, führen Sie den folgenden Befehl in der Befehlszeile aus:
$ php -v
Sie sollten etwas Ähnliches wie das Folgende sehen (obwohl Ihre Ausgabe je nach der PHP-Version, die Sie ausführen möchten, variieren kann):
PHP 5.6.10 (cli) (built: Jul 6 2015 14:28:54) Copyright (c) 1997-2015 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies
Wenn Sie fortgeschrittener sind und mehrere Kopien des Projekts installiert haben, können Sie Folgendes ausführen:
$ which php
Sie sollten etwa Folgendes sehen:
/Applications/MAMP/bin/php/php5.6.10/bin/php
Ihre Ausgabe hängt jedoch davon ab, wo Ihre PHP-Kopie installiert ist.
Obwohl sich diese Serie in erster Linie an Anfänger richtet, gibt es vielleicht einige von Ihnen, die bereit sind, eine Kopie von PHP herunterzuladen und auf Ihrem System zu installieren. Wenn das auf Sie zutrifft, holen Sie sich eine Kopie von PHP von der Projekt-Homepage, installieren Sie sie und kehren Sie zu diesem Tutorial zurück.
Wenn dies für Sie jedoch neu ist, können Sie eines der Installationsprogramme für Ihr Betriebssystem von der oben verlinkten PHP-Homepage oder eines der unten bereitgestellten Dienstprogramme verwenden.
Alle diese Pakete haben ihre eigenen Installationsprogramme und installieren PHP, MySQL und Apache. Wie bereits erwähnt, besteht unser Hauptanliegen darin, eine Kopie von PHP auf unserem System verfügbar zu haben.
Versuchen Sie nach der Installation, den im ersten Teil dieses Abschnitts genannten Befehl (oder den entsprechenden Befehl für Ihr System) auszuführen, und Sie sollten eine ähnliche Ausgabe sehen.
Wenn Sie dies nicht tun, müssen Sie möglicherweise den Pfad zu PHP zu Ihren Umgebungsvariablen hinzufügen. Dies würde den Rahmen dieses Tutorials sprengen. Bitte konsultieren Sie daher die Dokumentation für die Version des Projekts, die Sie installiert haben.
Nachdem PHP installiert ist, können wir damit beginnen, Code-Gerüche zu erkennen und zu bereinigen.
Die offizielle PHP CodeSniffer-Software finden Sie auf GitHub.
Aus der Projektdokumentation:
PHP_CodeSniffer ist ein Satz aus zwei PHP-Skripten; das Hauptskriptphpcs
脚本对 PHP、JavaScript 和 CSS 文件进行标记,以检测是否违反已定义的编码标准,第二个phpcbf
wird verwendet, um Verstöße gegen Codierungsstandards automatisch zu korrigieren. PHP_CodeSniffer ist ein wichtiges Entwicklungstool, das sicherstellt, dass Ihr Code sauber und konsistent bleibt.
Wenn Sie so etwas noch nie gesehen haben, klingt es wirklich gut, nicht wahr? Ich meine, es ist ein Tool, das dazu dient, sicherzustellen, dass Ihr Code ein bestimmtes Qualitätsniveau hat!
Während das Projekt Sprachen wie CSS und JavaScript erwähnt, konzentrieren wir uns in dieser Serie auf PHP. Das bedeutet jedoch nicht, dass es nicht wichtig ist, die Qualität dieser sprachspezifischen Dateien in Ihrem Projekt zu überprüfen.
Obwohl es großartig klingt, wirft es dennoch einige Fragen auf: Wie installieren wir die Software und wie beginnen wir mit der Überprüfung unseres Codes?
Beantworten wir nun diese beiden Fragen.
Wenn Sie bei Google nach der Installation von PHP CodeSniffer suchen, werden Sie wahrscheinlich auf eine Vielzahl von Ergebnissen stoßen, von denen viele die Verwendung von etwas namens Pear beinhalten.
Pear war früher das De-facto-Paketverteilungssystem für PHP-Bibliotheken, und obwohl viele Pakete immer noch über die Software verfügbar sind, wurde es auch aus anderen beliebten Paketen wie PHPUnit ausgemustert.
Aus diesem Grund empfehle ich häufig die Verwendung anderer verfügbarer Installationsmethoden. Dazu gehört die Verwendung von Tools wie Composer, der wohl beliebtesten Software zur Abhängigkeitsverwaltung für PHP.
如果您以前从未使用过 Composer,请不要担心。我将提供您所需的所有步骤,以便通过 Composer 并以最少的工作在您的计算机上启动并运行 PHP CodeSniffer。如果您有兴趣了解更多信息,我们有很多有关如何使用 Composer 的教程,请随时查看。
在安装 PHP CodeSniffer 之前,我们需要实际安装 Composer。幸运的是,一旦您在本地计算机上启动并运行了 PHP,就可以很容易地做到这一点。
要安装 Composer,您可以下载此文件,然后从下载 Composer 安装程序的位置在命令行上执行以下命令:
$ php composer-setup.php --install-dir=bin --filename=composer
Composer 安装说明中的注释:
您可以使用--install-dir
选项将 Composer 安装到特定目录,并使用--filename
选项(重新)命名它。
有关更多信息,请随时参阅下载说明或在 GitHub 上查看整个项目。
安装完成后,您现在可以使用 Composer 将第三方依赖项(例如 PHP CodeSniffer)安装到您的项目中。不过,请记下您安装 Composer 副本的位置。运行它时您需要引用它,因为我们将从命令行运行它。
无论如何,让我们继续创建一个目录,我们将在其中运行 PHP 脚本。虽然此目录中还没有任何内容,但我们需要创建一个名为 composer.json
的文件。
我将调用我的目录 tutsplus-demo
,并将我的 Composer 文件包含在该目录中以开始使用。
创建文件后,将以下代码放入 JSON 文件中:
{ "require": { "squizlabs/php_codesniffer": "2.*" } }
简而言之,这告诉 Composer 在您执行正确的命令时安装 PHP CodeSniffer。请注意,require
指令执行以下操作:
列出该包所需的包。除非满足这些要求,否则不会安装该软件包。
您可以在文档中阅读有关 Composer 架构的更多信息。
一旦安装了 Composer,并且您的 composer.json
文件与上面的代码类似,就可以实际安装 PHP CodeSniffer 了。从命令行发出以下命令:
$ composer update
请注意,这是基于 Composer 在您的系统上公开可用的想法。如果没有,您可以通过键入已安装文件的完整路径来执行它,也可以将其添加到环境变量中,然后重新启动终端会话以重新加载变量。
Composer 完成工作后,您应该会看到如下内容:
您的 tutsplus-code
目录现在应如下所示:
特别注意,您有一个供应商目录。这意味着 Composer 正确安装了 PHP CodeSniffer。此时,我们已准备好评估 PHP 代码。
首先,我们来看一个示例脚本。我们要查看的内容可以在 Stack Overflow 上的这个答案中找到。
在 tutsplus-demo
目录中创建一个文件,并将其命名为 sample.php
。然后,确保该文件包含以下内容:
<?php $target_dir = "uploads/"; $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); $uploadOk = 1; $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); // Check if image file is a actual image or fake image if(isset($_POST["submit"])) { $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]); if($check !== false) { echo "File is an image - " . $check["mime"] . "."; $uploadOk = 1; } else { echo "File is not an image."; $uploadOk = 0; } } ?>
保存您的工作。接下来,我们可以从命令行运行 PHP CodeSniffer,并让它使用标准规则集评估上面脚本中的代码。
从您的终端输入以下命令:
$ vendor/bin/phpcs sample.php
这应该生成包含以下内容的输出:
Skyhopper5:tutsplus-demo tommcfarlin$ vendor/bin/phpcs sample.php FILE: /Users/tommcfarlin/Desktop/tutsplus-demo/sample.php ---------------------------------------------------------------------- FOUND 4 ERRORS AFFECTING 4 LINES ---------------------------------------------------------------------- 2 | ERROR | [ ] Missing file doc comment 5 | ERROR | [x] No space found after comma in function call 7 | ERROR | [ ] Expected "if (...) {\n"; found "if(...) {\n" 9 | ERROR | [ ] Expected "if (...) {\n"; found "if(...) {\n" ---------------------------------------------------------------------- PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY ---------------------------------------------------------------------- Time: 46ms; Memory: 3.5Mb Skyhopper5:tutsplus-demo tommcfarlin$
请注意,它发现了四个错误。第一列告诉您错误发生在哪一行,第二列指出这是一个错误(而不是警告),然后其余的告诉您它期望看到的内容与实际看到的内容。
所以让我们根据这些错误清理文件。一般来说,我们需要做到以下几点:
if
语句后添加空格。最终结果如下所示:
<?php /** * Determines if the file being uploaded is a legitimate image or not. * If so, allows the file to be uploaded. Otherwise, prevents the upload * from occurring. * * PHP Version 5 * * @category Demo * @package TutsPlus_Demo * @author Tom McFarlin <tom@tommcfarlin.com> * @license http://opensource.org/licenses/gpl-license.php GNU Public License * @link http://is.gd/dq0DhO * @since 1.0.0 */ $target_dir = "uploads/"; $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); $uploadOk = 1; $imageFileType = pathinfo($target_file, PATHINFO_EXTENSION); // Check if image file is a actual image or fake image if (isset($_POST["submit"])) { $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]); if ($check !== false) { echo "File is an image - " . $check["mime"] . "."; $uploadOk = 1; } else { echo "File is not an image."; $uploadOk = 0; } } ?>
接下来,再次运行脚本,您应该不会得到任何输出。也就是说,您应该看到标准命令提示符。有时这意味着某些东西被破坏了,但在这种情况下,这意味着一切都按预期运行
不错吧?
现在想象一下这对于您每天使用的更大的代码库和脚本会有什么作用。
Während es wichtig ist, unseren Code zu bewerten, Code-Gerüche zu vermeiden und die höchstmögliche Qualität anzustreben, sind Tools wie PHP CodeSniffer nicht als Krücke gedacht. Das bedeutet, dass wir keine Entschuldigung dafür haben, fehlerhaften Code zu schreiben, nur weil ein anderes Tool ihn abfängt.
Weil es nicht immer so funktioniert.
Stattdessen bedeutet es einen zweiten Durchgang. Das heißt, sein Zweck besteht darin, Dinge zu erfassen, die wir möglicherweise beim ersten, zweiten oder neunten Mal, als wir Code geschrieben haben, übersehen haben. Das Schöne an diesem speziellen Programm ist, dass Sie je nach verwendeter Umgebung, Framework oder Bibliothek unterschiedliche Regeln in PHP CodeSniffer laden können.
Genau das werden wir im nächsten Artikel mit WordPress machen.
Was das Einführungsmaterial betrifft, decken wir in diesem Tutorial einiges ab. Lassen Sie uns jedoch darüber nachdenken, eine grundlegende Entwicklungsumgebung mit PHP auf unserem lokalen Computer einzurichten.
Als nächstes erfuhren wir etwas über Composer und wie man es auf unserem System installiert. Wir haben unsere erste Composer-Datei zum Abrufen von Abhängigkeiten geschrieben, den PHP CodeSniffer, und wir haben sogar die Ergebnisse, die uns die Software lieferte, ausgewertet und korrigiert.
Wenn Sie in erster Linie ein PHP-Entwickler sind, dann hoffe ich, dass die ersten beiden Artikel dieser Serie hilfreich waren, aber wenn Sie ein WordPress-Entwickler sind, haben wir noch viel mehr zu bieten.
Im letzten Artikel dieser Serie widmen wir uns WordPress. Da es über eigene Codierungsstandards verfügt, schauen wir uns an, wie wir diese Regeln in PHP CodeSniffer laden und dann Plugins, Theme-Code usw. evaluieren, um zu sehen, wie wir sie in unserer täglichen Arbeit nutzen können Unsere WordPress-Projekte heute.
Bevor wir mit dem nächsten Artikel fortfahren, schauen Sie sich den Code oben an und stellen Sie sicher, dass Sie PHP und PHP CodeSniffer installiert haben und mit der Funktionsweise vertraut sind, denn wir werden alles miteinander verknüpfen
Schließlich können Sie sich alle meine Kurse und Tutorials auf meiner Profilseite ansehen und mir auf meinem Blog und/oder Twitter (@tommcfarlin) folgen, wo ich verschiedene Softwareentwicklungspraktiken diskutiere, insbesondere in einer WordPress-Umgebung.
Bitte zögern Sie nicht, im Feed unten Fragen oder Kommentare zu hinterlassen. Ich werde mein Bestes tun, um auf jede einzelne Frage zu antworten.
Das obige ist der detaillierte Inhalt vonVerwendung von PHP CodeSniffer mit WordPress: Installation und Verwendung von PHP CodeSniffer. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!