Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. PHP
Code

在WordPress中使用PHP CodeSniffer:安装和使用PHP CodeSniffer

by
Length:LongLanguages:

Chinese (Simplified) (中文(简体)) translation by Wei Zhang (you can also view the original English article)

在本系列的第一篇文章中,我们定义了代码气味,并查看了它们的一些示例以及我们如何重构它们以便提高代码质量。 召回:

[A]代码气味,也称为难闻气味,在计算机编程代码中,是指程序源代码中可能表示更深层问题的任何症状。

最终,我们正在努力实现特定于WordPress的代码嗅探规则,但在我们这样做之前,熟悉PHP CodeSniffer非常重要。

在本文中,我们将了解PHP CodeSniffer是什么,如何安装它,如何针对示例脚本运行它,以及如何重构所述脚本。 然后我们将看看我们将如何进入特定于WordPress的代码。

如果你有一个本地开发环境,那么很棒; 如果没有,那没关系。 我将提供一些可以帮助您快速启动和运行的链接。

话虽如此,让我们开始吧。

先决条件

在开始之前,重要的是您拥有某种类型的本地开发环境,即使这只包含PHP解释器的副本。

你可能已经有了一份副本

请注意,如果您运行的是Linux或OS X的变体,则可能已经安装了PHP。 如果您这样做,那么您不必担心本节中的任何其他内容。 要确定是否安装了PHP,请在命令行上运行以下命令:

您应该看到类似下面的内容(尽管根据您选择运行的PHP版本,输出可能会有所不同):

如果您更高级并且安装了多个项目副本,那么您可以运行:

你应该看到这样的事情:

虽然您的输出会根据PHP安装位置的不同而有所不同。

但如果你不这样做,那没关系!

虽然本系列主要面向初学者,但也许有些人愿意下载PHP副本并将其安装到您的系统上。 如果是这样,那么从项目主页获取PHP副本,安装它,然后返回本教程。

另一方面,如果这对您来说是新的,那么您可以选择在上面链接的PHP主页或下面提供的一个实用程序中使用操作系统的一个安装程序。

所有这些软件包都有自己的安装程序,并将安装PHP,MySQL和Apache。 如前所述,我们主要关注的是在我们的系统上提供PHP副本。

安装完成后,尝试运行本节第一部分(或系统的等效命令)中提到的命令,您应该看到类似的输出。

如果不这样做,那么您可能需要将PHP路径添加到环境变量中。 这超出了本教程的范围,因此请参阅所安装项目版本的文档。

现在安装了PHP,我们已经准备好开始捕获并清理代码味道了。

什么是PHP CodeSniffer?

您可以在GitHub上找到官方的PHP CodeSniffer软件。

PHP CodeSniffer on GitHub

从项目的文档:

PHP_CodeSniffer是一组两个PHP脚本; 主要的phpcs脚本,用于标识PHP,JavaScript和CSS文件以检测违反已定义的编码标准的行为,以及第二个用于自动纠正编码标准违规的phpcbf脚本。 PHP_CodeSniffer是一个必不可少的开发工具,可确保您的代码保持干净和一致。

如果你之前从未见过这样的东西,那听起来真的很整洁,不是吗? 我的意思是,它是一个工具,旨在帮助确保代码中存在一定的质量水平!

虽然该项目提到了CSS和JavaScript等语言,但我们在本系列中专注于PHP。 但这并不意味着检查项目中这些特定语言文件的质量并不重要。

虽然听起来很棒,但它仍然提出了一个问题:我们如何安装软件,以及我们如何开始检查我们的代码?

我们现在回答这两个问题。

1.安装软件

如果您要执行Google搜索以了解如何安装PHP CodeSniffer,您可能会得到各种结果,其中许多结果将包括使用名为Pear的内容。

Pear曾经是PHP库的事实上的包分发系统,尽管许多软件包仍然可以通过该软件获得,但它也从其他流行的软件包(例如PHPUnit)中退出。

出于这个原因,我经常建议在可用时使用其他安装方法。 这包括使用Composer等工具,它可以说是最受欢迎的PHP依赖管理软件。

The Composer Homepage

如果您以前从未使用过Composer,请不要担心。 我将提供您所需的所有步骤,以便使用Composer在您的计算机上启动并运行PHP CodeSniffer,并且只需最少的工作。 如果您有兴趣了解更多信息,我们有很多关于如何使用Composer的教程,请随时查看它们。

安装Composer

在我们安装PHP CodeSniffer之前,我们需要实际安装Composer。 幸运的是,一旦你在本地计算机上启动并运行PHP,这很容易实现。

要安装Composer,您可以下载此文件,然后从下载Composer安装程序的任何位置在命令行上执行以下命令:

Composer安装说明中的注释:

您可以使用--install-dir选项将Composer安装到特定目录,另外(重新)使用--filename选项将其命名。

有关更多信息,请随时参阅下载说明或在GitHub上查看整个项目。

安装完成后,您现在可以使用Composer将第三方依赖项(如PHP CodeSniffer)安装到项目中。 但请记下您安装Composer副本的位置。 在运行它时你需要引用它,因为我们将从命令行运行它。

无论如何,让我们继续创建一个目录,我们将运行我们的PHP脚本。 虽然我们目前还没有这个目录中的任何内容,但我们需要创建一个名为composer.json的文件。

我将打电话给我的目录tutsplus-demo,我将把我的Composer文件包含在该目录中以开始使用。

The initial project directory

创建文件后,将以下代码放在JSON文件中:

简而言之,这告诉Composer在执行正确的命令时安装PHP CodeSniffer。 请注意,require指令执行以下操作:

列出此程序包所需的程序包。 除非满足这些要求,否则不会安装包。

您可以在文档中阅读有关Composer架构的更多信息。

安装Composer之后,一旦你的composer.json文件看起来像上面的代码,就可以实际安装PHP CodeSniffer了。 从命令行,发出以下命令:

请注意,这取决于Composer在您的系统上公开可用的想法。 如果没有,您可以通过键入已安装文件的完整路径来执行它,也可以将其添加到环境变量中,然后重新启动终端会话以重新加载变量。

Composer完成工作后,您应该看到如下内容:

PHP CodeSniffer installed successfully via Composer

你的tutsplus-code目录现在应该如下所示:

tutsplus-demo with the new vendor directory containing PHP CodeSniffer

请特别注意您有供应商目录。 这意味着Composer正确安装了PHP CodeSniffer。 此时,我们已准备好评估我们的PHP代码。

2.评估脚本

首先,我们来看一个示例脚本。 我们将要查看的那个可以在Stack Overflow的答案中找到。

tutsplus-demo目录中创建一个文件,并将其命名为sample.php。 然后,确保该文件包含以下内容:

保存你的工作。 接下来,我们可以从命令行运行PHP CodeSniffer,并使用标准规则集评估上面脚本中的代码。

在终端中输入以下命令:

这应该生成包含以下内容的输出:

请注意,它发现了四个错误。 第一列告诉你错误在哪一行,第二列说明它是一个错误(相对于一个警告),然后其余部分告诉你它预期看到的与它实际看到的内容。

所以让我们根据这些错误清理文件。 一般来说,我们需要做以下事情:

  1. 添加文件级文档注释。
  2. 在对行文件中的函数的调用中,在逗号后添加空格。
  3. 在脚本中的if语句之后添加空格。

最终结果看起来像这样:

接下来,再次运行脚本,您不应该得到任何输出。 也就是说,您应该看到标准命令提示符。 有时这意味着某些东西被破坏了,但在这种情况下,它意味着一切都按预期运行

不错,对吧?

现在想象一下,这可以为您每天使用的更大的代码库和脚本做些什么。

这不是拐杖

同样重要的是评估我们的代码,避免代码味道,并以尽可能高的质量为目标,PHP CodeSniffer等工具并不意味着用作拐杖。 这意味着我们没有借口编写错误的代码,因为另一个工具会捕获它。

因为它不会总是这样做。

相反,这意味着第二次通过。 也就是说,它意味着捕获在第一次,第二次或第九次编写代码时可能会遗漏的内容。 这个特定程序的优点是,您可以根据您正在使用的环境,框架或库,将不同的规则加载到PHP CodeSniffer中。

这正是我们将在下一篇文章中对WordPress做的事情。

结论

就介绍性材料而言,我们在本教程中介绍了相当多的内容。 也就是说,我们已经考虑在包含PHP的本地计算机上设置基本开发环境。

接下来,我们已经了解了Composer以及如何在我们的系统上安装它。 我们编写了第一个用于检索依赖关系的Composer文件,即PHP CodeSniffer,我们甚至评估并更正了软件提供给我们的结果。

如果您主要是PHP开发人员,那么我希望本系列的前两篇文章有所帮助,但如果您是WordPress开发人员,那么我们还需要更多内容。

在本系列的最后一篇文章中,我们将把注意力转向WordPress。 因为它有自己的一套编码标准,我们将看看如何将这些规则加载到PHP CodeSniffer中,然后评估插件,主题代码等,以便了解如何在我们的日子中使用它 -  今天在我们的WordPress项目中工作。

在我们继续阅读下一篇文章之前,请查看上面的代码并确保安装了PHP和PHP CodeSniffer,并且熟悉它是如何工作的,因为我们将把所有这些结合在一起。

最后,您可以在我的个人资料页面上查看我的所有课程和教程,您可以在我的博客和/或Twitter上关注我@tommcfarlin,在那里我谈论各种软件开发实践,特别是在WordPress的背景下。

请不要犹豫,在下面的Feed中留下任何问题或评论,我的目标是回复每个问题。

参考

关注我们的公众号
Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.