今天在改進老項目的時候遇到了需要使用ThinkPHP的CLI模式,也就是命令行模式去運行PHP代碼。
普通的PHP使用命令行模式這個就不用我多說了~
其實ThinkPHP5.1關於這個命令行模式官方手冊也有介紹。當然,還是記錄一下,以防後面忘記了又要翻文檔。
當前TP5.1版本是5.1.38,關於查看TP版本,在CMD下輸入php think version即可查看
如果輸入PHP命令,CMD提示 PHP 不是內部或外部命令也不是可運行的程序,這時候需要設置一下PHP的環境變量,例如我當前的環境是PHPStudy 8.0 和 Windows 10
首先PHP的安裝目錄下有PHP.EXE文件
那麼就將當前目錄地址
D:\soft\phpstudy\Extensions\php\php7.3.4nts
寫入到環境變量中去,桌面上右鍵-此電腦-屬性-高級系統設置-環境變量-找到path-編輯-將上面的目錄寫入。
OK,重啓一下CMD,就可以愉快的操作PHP了。
接下來是ThinkPHP的操作
首先在application目錄下創建common目錄,common目錄下創建command目錄,在command目錄下創建一個test.php(注意大小寫!)
test.php的內容如下
<?php
/**
* Created by 九城.
* Author: 九城
* QQ : 940993208
*
* Date: 2019/9/18
* Time: 14:34
*/
namespace app\common\command;
use think\console\Command;
use think\console\Input;
use think\console\Output;
class test extends Command
{
protected function configure()
{
$this->setName('test')
->setDescription('test tp5 cli mode');
}
protected function execute(Input $input, Output $output)
{
$output->writeln("hello test!");
}
}
然後在command.php文件寫入當前test的命名空間
<?php
return [
'test' => 'app\common\command\test',
];
接着在cmd下輸入命令
php think
接着輸入
php think test
至此就可以愉快的使用命令行模式去使用ThinkPHP5.1
業務代碼可以寫在execute方法裏。例如循環的去讀取Redis,循環生成等,不過這種場景最好還是Swoole或者Workman來處理比較好。