CLI程序开发 - 用命令行运行PHP

  • 作者:KK

  • 发表日期:2016.10.12


要点速读

  • CLI模式其实就是命令行运行模式,英文全称Command-Line Interface(命令行接口)

  • 在新建一个PHP文件里面随便echo些东西,然后用cmd切换到这个文件所在的目录,执行php 文件名即可在命令行执行PHP

  • 执行php -r "代码"可以运行你想要的简单的测试代码,比如php -r "echo 123;"


尝试运行一个简单的CLI程序

大部分程序员在调试时写完PHP代码后都是通过访问网址,在网页上查看结果来实现测试的,然而其实PHP还可以通过其他方式来运行调试的

  1. 实现可运行php命令

    为了方便运行,先将PHP目录添加到PATH变量中,确认命令行里面运行php -v会输出版本号

  2. 在测试目录写下简单的PHP代码

    找一个测试目录,比如我的目录就是D:\test这个目录,在里面新建一个a.php,代码如下:

    <?php
    echo 'hello cli';
    
  3. 启动命令行,切换到测试目录下

    运行cmd,假设你也是用D:\test这个测试目录,执行D:回车,切换到D盘了

    然后再执行cd D:\test

  4. 正式尝试

    此时cmd正处于测试目录下了,运行php a.php,结果应该是输出这样的:

    hello cli
    

小结

将一个文件路径传给了php,于是php读取这个文件并解析里面的代码开始执行,最后得到输出结果并返回给了命令行,就是这么一回事

这种情况下是不需要Apache服务器的,所以可以不用建立网站就测试PHP的一些代码,这个我们通俗叫它命令行模式,行业内专业术语叫CLI模式(Command-Line Interface的缩写)

一般运行PHP我们主要有两种方式:

  1. 通过HTTP协议请求服务器,服务器再调用PHP,PHP运行后又把结果返回给服务器,服务器再给回请求端(一般是浏览器、APP软件或桌面软件)

  2. 通过命令行接口直接调用PHP命令,PHP运行完后将输出结果回送给命令行接口,命令行终端界面呈现给用户


CLI模式的程序有什么作用?

有的事情是不需要界面的,比如典型的就是自动清理或整理一些数据,就是连接数据库,执行删除命令,然后退出程序,那这时候把这些脚本写到PHP里用命令行执行就可以了

不然为了清除数据难道还要将这个脚本放在网站目录下,然后通过网址访问来触发?想问问你如果用这种方案时内心有一种啥样感觉

不过普通小项目中都比较少用到CLI模式的程序,菜鸟程序员学这些主要就是涨知识,增加对PHP的了解吧。但如果会活用起来那还是能做很多想做的事情的,比如自动检查代码语法

随着接触项目的复杂度增加和自己的经验增加,挑战的功能越来越复杂,开发CLI程序的频率开始慢慢升高,所以这个基础功掌握一下是绝对的好事 随着接触项目的复杂度增加和自己的经验增加,挑战的功能越来越复杂,开发CLI程序的频率开始慢慢升高,所以这个基础功掌握一下是绝对的好事