最近的一個項目在用tp5,對於tp3都幾乎沒用過的我來講~~~php
tp5最好的一點就是對接口的單獨封裝,只要嚴格按照要求一步一步來就能夠成功了thinkphp
<?php
return [
'app\api\controller\shell\控制器名稱',
];
建立命令類文件(接口文件),地址application/controller/shell/文件名稱(駝峯命名)
編輯文件
<?php namespace app\home; // 此處開發文檔上寫的是app\home\command;實際上,去掉command才能夠正常跑,尚未弄明白到底是怎麼回事 use think\console\Command; use think\console\Input; use think\console\Output; class Test extends Command { protected function configure() {
//設置參數 $this->addArgument('email', Argument::REQUIRED); //必傳參數 $this->addArgument('mobile', Argument::OPTIONAL);//可選參數 //選項定義 $this->addOption('message', 'm', Option::VALUE_REQUIRED, 'test'); //選項值必填 $this->addOption('status', 's', Option::VALUE_OPTIONAL, 'test'); //選項值選填 $this->setName('test')->setDescription('Here is the remark ');
}
shell
//獲取參數值 $args = $input->getArguments(); $output->writeln('The args value is:'); print_r($args);
//獲取選項值 $options = $input->getOptions(); $output->writeln('The options value is:'); print_r($options); $output->writeln('Now execute command...'); $output->writeln("End..");
api
app
注意只有在配置中設置了參數,同時在execute中用封裝的方法$input->getArguments();
獲取參數纔可以精確獲取到須要的參數,不然若是隻是在execute中直接print($input)出現的是一個超級複雜的數據對象
$input->getArguments();
同時能夠將參數跟在命令後面當作參數傳入 php think test 2017-06-05thinkphp5
這樣就完成了一個簡單的接口測試
可是在我剛剛進入命令行的時候,執行命令行中的tp5帶命令,報了一個奇怪的錯誤igbinary 版本錯誤,緣由是我安裝的igbinary與php版本不匹配,從新安裝就行了,可是目前還不知道igbinary和命令行運行之間有什麼必然聯繫this