0

0

使用PHP CodeSniffer与WordPress:安装和使用PHP CodeSniffer

PHPz

PHPz

发布时间:2023-09-02 22:13:15

|

755人浏览过

|

来源于php中文网

原创

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

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

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

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

如果您设置了本地开发环境,那就太好了;如果没有,那也没关系。我将提供一些链接,帮助您快速启动并运行。

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

立即学习PHP免费学习笔记(深入)”;

先决条件

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

您可能已经拥有副本

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

$ php -v

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

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

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

$ which php

您应该看到类似这样的内容:

/Applications/MAMP/bin/php/php5.6.10/bin/php

尽管您的输出会根据 PHP 副本的安装位置而有所不同。

但如果您不这样做,也没关系!

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

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

  • WAMP for Windows
  • XAMPP 适用于 Linux、Windows 或 OS X
  • 适用于 Windows 和 OS X 的 MAMP

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

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

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

现在安装了 PHP,我们就可以开始捕获和清理代码异味了。

什么是 PHP CodeSniffer?

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

使用PHP CodeSniffer与WordPress:安装和使用PHP CodeSniffer

来自项目文档:

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

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

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

尽管听起来很棒,但它仍然引发了一些问题:我们如何安装软件,以及如何开始检查我们的代码?

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

1。安装软件

如果您在 Google 上搜索如何安装 PHP CodeSniffer,您最终可能会得到各种结果,其中许多结果将包括使用名为 Pear 的东西。

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

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

使用PHP CodeSniffer与WordPress:安装和使用PHP CodeSniffer

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

安装 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 副本的位置。运行它时您需要引用它,因为我们将从命令行运行它。

SmartB2B行业电子商务
SmartB2B行业电子商务

SmartB2B 是一款基于PHP、MySQL、Smarty的B2B行业电子商务网站管理系统,系统提供了供求模型、企业模型、产品模型、人才招聘模型、资讯模型等模块,适用于想在行业里取得领先地位的企业快速假设B2B网站,可以运行于Linux与Windows等多重服务器环境,安装方便,使用灵活。 系统使用当前流行的PHP语言开发,以MySQL为数据库,采用B/S架构,MVC模式开发。融入了模型化、模板

下载

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

我将调用我的目录 tutsplus-demo,并将我的 Composer 文件包含在该目录中以开始使用。

使用PHP CodeSniffer与WordPress:安装和使用PHP CodeSniffer

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

{
    "require": {
        "squizlabs/php_codesniffer": "2.*"
    }
}

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

列出该包所需的包。除非满足这些要求,否则不会安装该软件包。

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

一旦安装了 Composer,并且您的 composer.json 文件与上面的代码类似,就可以实际安装 PHP CodeSniffer 了。从命令行发出以下命令:

$ composer update

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

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

使用PHP CodeSniffer与WordPress:安装和使用PHP CodeSniffer

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

使用PHP CodeSniffer与WordPress:安装和使用PHP CodeSniffer

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

2。评估脚本

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

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


保存您的工作。接下来,我们可以从命令行运行 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$ 

请注意,它发现了四个错误。第一列告诉您错误发生在哪一行,第二列指出这是一个错误(而不是警告),然后其余的告诉您它期望看到的内容与实际看到的内容。

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

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

最终结果如下所示:


 * @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;
    }
}
?>

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

不错吧?

现在想象一下这对于您每天使用的更大的代码库和脚本会有什么作用。

这不是拐杖

尽管评估我们的代码、避免代码异味并追求尽可能最高的质量非常重要,但 PHP CodeSniffer 等工具并不意味着用作拐杖。这意味着我们没有借口编写糟糕的代码,因为另一个工具会捕获它。

因为它并不总是如此。

相反,这意味着第二次通过。也就是说,它的目的是捕捉我们在第一次、第二次或第九次编写代码时可能错过的东西。这个特定程序的好处是,您可以根据您正在使用的环境、框架或库将不同的规则加载到 PHP CodeSniffer 中。

这正是我们在下一篇文章中将要使用 WordPress 所做的事情。

结论

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

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

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

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

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

最后,您可以在我的个人资料页面上查看我的所有课程和教程,并且可以在我的博客和/或 Twitter(@tommcfarlin)上关注我,我在其中讨论了各种软件开发实践,尤其是在 WordPress 环境中。

请随时在下面的提要中留下任何问题或评论,我会尽力回复每个问题或评论。

参考文献

  • PHP
  • GitHub 上的 PHP CodeSniffer
  • GitHub 上的作曲家
  • 安装 Composer
  • 作曲家架构
  • Tuts+ 作曲家教程
  • 来自 Stack Overflow 的示例 PHP 脚本
WPS零基础入门到精通全套教程!
WPS零基础入门到精通全套教程!

全网最新最细最实用WPS零基础入门到精通全套教程!带你真正掌握WPS办公! 内含Excel基础操作、函数设计、数据透视表等

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
php文件怎么打开
php文件怎么打开

打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

1965

2023.09.01

php怎么取出数组的前几个元素
php怎么取出数组的前几个元素

取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

1291

2023.10.11

php反序列化失败怎么办
php反序列化失败怎么办

php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

1198

2023.10.11

php怎么连接mssql数据库
php怎么连接mssql数据库

连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

948

2023.10.23

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

1400

2023.10.23

html怎么上传
html怎么上传

html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

1229

2023.11.03

PHP出现乱码怎么解决
PHP出现乱码怎么解决

PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1439

2023.11.09

php文件怎么在手机上打开
php文件怎么在手机上打开

php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1303

2023.11.13

php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

7

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号