终端中的PHP:像专家一样编写CLI工具

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

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

开始课程

PHP不仅仅是Web:为什么你的下一个CLI工具应该用PHP编写



当我们听到“PHP”时,第一反应是网站、WordPress和浏览器中无尽的echo。但PHP是开发者的瑞士军刀。它最被低估的功能之一就是能够创建完整的PHP CLI工具。是的,就是那些帮助自动化日常任务、解析日志、生成报告以及让DevOps工程师生活更轻松的控制台程序。



在本文中,我们不仅仅讨论理论。我们将从零开始编写几个真实的PHP控制台应用。您将学习如何处理命令行参数、为输出着色、显示进度条,甚至创建交互式菜单。文章结束时,您将拥有一个可以直接在项目中使用的现成模板。



为什么用PHP做CLI?3个有力论据



在深入代码之前,让我们先弄清楚为什么要在创建CLI工具时使用PHP。毕竟还有Python、Node.js、Go……



  • 您已经了解PHP。如果您是PHP Web开发者,您无需学习新语法即可编写数据库备份或部署脚本。
  • 统一的生态系统。您可以使用相同的库(通过Composer)、相同的ORM和相同的模板引擎。想要一个从数据库生成PDF报告的脚本?没问题。
  • 开发速度。PHP脚本编写非常快。对于简单的工具来说,这是理想的选择——无需编译、无需配置环境,直接运行即可。


当然,对于高负载守护进程或复杂的系统工具,最好使用C或Rust。但对于90%的日常任务,PHP非常合适。



从零到第一个CLI工具:终端中的Hello, World!



让我们从最简单的开始。创建一个文件hello.php并写入:



#!/usr/bin/env php<?php

echo "你好,终端!";


第一行是shebang。它告诉系统这个文件应该用PHP执行。没有它,您每次都需要输入php hello.php,而有它,只需./hello.php。



别忘了给文件执行权限:



chmod +x hello.php


现在运行:



./hello.php


恭喜!您刚刚创建了第一个PHP CLI工具。这非常简单,对吧?



处理参数:让工具变得有用



任何严肃的控制台程序都应该能够接受参数。PHP为此提供了两个超全局数组:$argv和$argc。



  • $argv — 参数数组。第一个元素是脚本名称。
  • $argc — 参数数量。


让我们编写一个简单的计算器——将作为参数传递的两个数字相加。



PHP CLI简单计算器



#!/usr/bin/env php<?php

if ($argc !== 3) { echo "用法:{$argv[0]} <数字1> <数字2>"; exit(1);}

$a = (int)$argv[1];$b = (int)$argv[2];

echo "和:" . ($a + $b) . "";echo "差:" . ($a - $b) . "";echo "积:" . ($a * $b) . "";echo "商:" . ($a / $b) . "";


运行:



./calc.php 10 5


输出:



和:15差:5积:50商:2


但这太原始了。在实际项目中,需要像git commit -m "message"这样的命名参数(标志)。为此,PHP提供了getopt()函数。



使用getopt()的命名参数



#!/usr/bin/env php<?php

$shortOptions = "u

博客

书籍推荐