PHP CLI 工具:为什么你还没有编写自己的控制台工具?
\n\n想象一下:你坐在终端里,运行一个命令——一秒钟后,一份报告就准备好了,所有图片都已转换,或者新服务器上的项目已配置完成。无需浏览器,无需鼠标,无需多余的操作。听起来像魔法?不,这只是普通的 PHP CLI 工具。
\n\n许多开发者认为 PHP 只是一种“网络语言”。但实际上,PHP 是创建控制台应用程序的绝佳工具。它内置了输入输出流处理、便捷的参数处理功能,当然还有像 Symfony Console 这样强大的库。在本文中,我们将讲解如何从零开始创建一个 PHP 控制台脚本——从简单的 echo 到带有颜色和进度条的完整工具。
\n\n如果你厌倦了手动处理重复性任务,如果你想自动化日常工作并感觉自己像个真正的黑客——那你来对地方了。我们开始吧!
\n\n什么是 CLI 工具,为什么需要它?
\n\nCLI(命令行界面) 是一个在命令行中运行的程序。它接收参数,执行操作并输出结果。与 Web 应用程序不同,这里没有 HTML、CSS 和 JavaScript。只有纯粹的代码和终端。
\n\n为什么要编写 PHP CLI 工具?以下是一些场景:
\n\n- \n
- 数据迁移——将信息从 CSV 传输到数据库。 \n
- 生成报告——收集统计数据并生成 PDF 或 Excel 文件。 \n
- 自动化部署——通过一个命令在服务器上部署项目。 \n
- 解析和处理文件——转换、压缩、重命名。 \n
- CRON 任务——按计划定期执行的操作。 \n
最重要的是——用 PHP 开发控制台工具 不需要复杂的基础设施。一个文件加上几行代码就足够了。
\n\n开始:最小的 PHP CLI 脚本
\n\n打开终端,创建一个文件 hello.php 并写入:
<?php\necho "你好,终端!\\n";\n\n\n运行:
\n\nphp hello.php\n\n\n你会看到:
\n\n你好,终端!\n\n恭喜!你刚刚编写了你的第一个 PHP CLI 工具。但让我们让它变得更有用。添加命令行参数处理。
\n\n处理参数:$argv 和 $argc
\n\nPHP 提供了两个用于处理控制台的超全局数组:$argv(参数列表)和 $argc(参数数量)。第一个参数(索引 0)是脚本本身的名称。
示例:
\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\nphp hello.php 阿列克谢\n\n\n结果:
\n\n你好,阿列克谢!\n\n已经有点意思了。但对于严肃的项目来说,这种方法并不方便。我们需要命名参数、标志、默认值。这时 Symfony Console 库就派上用场了。
\n\nSymfony Console:PHP CLI 工具的坚实基础
\n\nSymfony Console 是创建 PHP 控制台应用程序的事实标准。使用它,你可以轻松添加:
\n\n- \n
- 命名参数和选项 \n
- 彩色输出 \n
- 进度条 \n
- 输入验证 \n
- 命令自动加载 \n
通过 Composer 安装:
\n\ncomposer require symfony/console\n\n\n现在让我们创建一个完整的 PHP CLI 工具——一个密码生成器。
\n\n编写密码生成命令
\n\n项目结构