PHP CLI 工具:从零开始创建控制台工具

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

PHP CLI 工具:为什么你还没有编写自己的控制台工具?

\n\n

想象一下:你坐在终端里,运行一个命令——一秒钟后,一份报告就准备好了,所有图片都已转换,或者新服务器上的项目已配置完成。无需浏览器,无需鼠标,无需多余的操作。听起来像魔法?不,这只是普通的 PHP CLI 工具。

\n\n

许多开发者认为 PHP 只是一种“网络语言”。但实际上,PHP 是创建控制台应用程序的绝佳工具。它内置了输入输出流处理、便捷的参数处理功能,当然还有像 Symfony Console 这样强大的库。在本文中,我们将讲解如何从零开始创建一个 PHP 控制台脚本——从简单的 echo 到带有颜色和进度条的完整工具。

\n\n

如果你厌倦了手动处理重复性任务,如果你想自动化日常工作并感觉自己像个真正的黑客——那你来对地方了。我们开始吧!

\n\n

什么是 CLI 工具,为什么需要它?

\n\n

CLI(命令行界面) 是一个在命令行中运行的程序。它接收参数,执行操作并输出结果。与 Web 应用程序不同,这里没有 HTML、CSS 和 JavaScript。只有纯粹的代码和终端。

\n\n

为什么要编写 PHP CLI 工具?以下是一些场景:

\n\n
    \n
  • 数据迁移——将信息从 CSV 传输到数据库。
  • \n
  • 生成报告——收集统计数据并生成 PDF 或 Excel 文件。
  • \n
  • 自动化部署——通过一个命令在服务器上部署项目。
  • \n
  • 解析和处理文件——转换、压缩、重命名。
  • \n
  • CRON 任务——按计划定期执行的操作。
  • \n
\n\n

最重要的是——用 PHP 开发控制台工具 不需要复杂的基础设施。一个文件加上几行代码就足够了。

\n\n

开始:最小的 PHP CLI 脚本

\n\n

打开终端,创建一个文件 hello.php 并写入:

\n\n
<?php\necho "你好,终端!\\n";\n
\n\n

运行:

\n\n
php hello.php\n
\n\n

你会看到:

\n\n
你好,终端!
\n\n

恭喜!你刚刚编写了你的第一个 PHP CLI 工具。但让我们让它变得更有用。添加命令行参数处理。

\n\n

处理参数:$argv 和 $argc

\n\n

PHP 提供了两个用于处理控制台的超全局数组:$argv(参数列表)和 $argc(参数数量)。第一个参数(索引 0)是脚本本身的名称。

\n\n

示例:

\n\n
<?php\nif ($argc < 2) {\n    echo "用法:php hello.php [名称]\\n";\n    exit(1);\n}\n\n$name = $argv[1];\necho "你好,$name!\\n";\n
\n\n

运行:

\n\n
php hello.php 阿列克谢\n
\n\n

结果:

\n\n
你好,阿列克谢!
\n\n

已经有点意思了。但对于严肃的项目来说,这种方法并不方便。我们需要命名参数、标志、默认值。这时 Symfony Console 库就派上用场了。

\n\n

Symfony Console:PHP CLI 工具的坚实基础

\n\n

Symfony Console 是创建 PHP 控制台应用程序的事实标准。使用它,你可以轻松添加:

\n\n
    \n
  • 命名参数和选项
  • \n
  • 彩色输出
  • \n
  • 进度条
  • \n
  • 输入验证
  • \n
  • 命令自动加载
  • \n
\n\n

通过 Composer 安装:

\n\n
composer require symfony/console\n
\n\n

现在让我们创建一个完整的 PHP CLI 工具——一个密码生成器。

\n\n

编写密码生成命令

\n\n

项目结构

博客

书籍推荐