使用 Phive 管理 phar 文件

在上一节中,我们学习了如何使用 phar 文件而不是使用 Composer 来安装代码质量工具。 这种方法效果很好,但如果你想更新它们,它确实需要一些额外的工作。

Phive 是一个可以接管额外工作的工具。 让我们立即安装它。

当然,Phive 本身也可以以 phar 的形式下载。以下命令将以 phive 为名下载 Phive 并使其可执行:

$ wget https://github.com/phar-io/phive/releases/
download/0.15.1/phive-0.15.1.phar -O phive
$ chmod +x phive

请注意,这种安装方法不太安全。请访问该工具的网站 ( https://phar.io ),了解如何安全安装以及如何在全球范围内使用该工具。

出于演示目的,简单下载即可。下载文件并使其可执行后,就可以直接开始使用 Phive 安装第一批工具了。让我们使用上一章介绍过的 phploc 来演示其工作原理,如下所示:

$ ./phive install phploc
下载验证

Phive 不仅负责安装,还负责下载验证。这在安装过程中会自动完成。不过,这需要供应商提供校验和,这也是并非所有工具都能通过 Phive 进行管理的主要原因。

如前所述,安装工具只需使用 install 命令即可。现在发生了以下四件事:

  1. Phive 下载了最新版本的 phploc,并验证了其校验和。

  2. phar 文件存储在共享文件夹中(通常位于主文件夹中,名称为 .phive)。

  3. Phive 然后创建一个指向该共享文件夹的符号链接。符号链接是文件系统中的一个引用,因此文件或目录可以出现在多个目录中,尽管它只存储在一个地方。默认情况下,该符号链接存储在 tools 文件夹中,如果该文件夹不存在,则会生成该链接。

  4. 在项目根文件夹中创建了另一个 .phive 文件夹,用于存储已下载工具的相关信息。

符号链接就像 "真正的" 可执行文件一样出现在你的目录中,而原始文件则保留在一个单独的位置。如果不想使用符号链接,可以使用 --copy 选项安装文件副本。

安装后,phploc 的执行非常简单,我们可以从这里看到:

$ tools/phploc src

Phive 提供了更多有用的命令。只需运行以下代码,无需任何命令,就能获得这些命令的列表:

$ ./phive

在此,我们将介绍最重要的几种:

  • list - 列出可通过 Phive 管理的所有工具

  • update - 更新所有已安装的 phar 文件(如果有更新版本的话

  • selfupdate - 更新 Phive 可执行文件本身

  • outdated - 告诉你哪些 phar 文件可以更新

  • status - 列出所有已安装工具的概览

将 Phive 添加到你的项目中

如果你在一个团队中工作,你不仅要在本地安装 phar 文件。Phive 在这方面也能满足你的需求。在项目中正确添加 Phive 需要以下两个步骤:

  1. 将项目根目录下的 .phive 文件夹添加到版本库中。其中的 phars.xml 文件包含所有必要信息(如 composer.lock 文件)。

  2. 确保 tools 文件夹不受版本控制(例如,使用 .gitignore 文件)。明确表示不要将 phar 文件本身添加到版本库中。

完成上述操作后,下次从版本库签出项目时,执行以下命令即可安装工具:

$ ./phive install

该命令可以轻松集成到其它工作流程中,例如,作为 composer.json 文件中的附加 postinstall-cmd 脚本。

以上就是开始使用 Phive 所需要了解的全部内容。和往常一样,我们建议你阅读官方文档,因为我们无法在本书中涵盖它提供的所有功能。

总结

Composer 是当今 PHP 世界不可或缺的一部分。在项目中添加代码质量工具的通常方法是将其添加到依赖项的 require-dev 部分,这在很多情况下都很有效。

然而,Composer 并不是唯一的方法。因此,在本章中,我们将介绍另外两种管理代码质量工具的方法:将 phar 文件手动添加到项目中,或者使用 Phive 管理 phar 文件。

现在,你可能已经迫不及待地想把学到的知识应用到代码中了。但是,一味地重构弊大于利,而且每次修改后都要点击应用程序的所有部分来检查是否有什么地方出了问题,这将花费你大量的时间,而且会让你非常沮丧。因此,在下一章中,我们将向你展示自动化测试如何在这方面为你提供帮助。