標籤:版本 注意 command 資料 test 項目目錄 簡單 配置環境變數 extend
最近的一個項目在用tp5,對於tp3都幾乎沒用過的我來說~~~
tp5最好的一點就是對介面的單獨封裝,只要嚴格按照要求一步一步來就可以成功了
- 開啟命令列:
- 配置環境變數
- 安裝tp5項目
- cmd進入項目目錄,運行php think,出現如下內容,則表示命令列開啟成功具體指令參考手冊 https://www.kancloud.cn/manual/thinkphp5/122951
- 建立自訂命令列(介面)
-
- 配置command.php檔案,目錄在application/command.php
<?php
return [
‘app\api\controller\shell\控制器名稱‘,
];
建立命令類檔案(介面檔案),地址application/controller/shell/檔案名稱(駝峰命名)
編輯檔案
<?phpnamespace app\home\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 ‘);
}
protected function execute(Input $input, Output $output) {
//擷取參數值 $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..");
}
}
注意只有在配置中設定了參數,同時在execute中用封裝的方法$input->getArguments();擷取參數才能夠精確擷取到需要的參數,否則如果只是在execute中直接print($input)出現的是一個超級複雜的資料對象
- 測試-命令協助-命令列下運行 php think
- 運行test命令 php think test
同時可以將參數跟在命令後面當做參數傳入 php think test 2017-06-05
這樣就完成了一個簡單的介面
但是在我剛剛進入命令列的時候,執行命令列中的tp5帶命令,報了一個奇怪的錯誤igbinary 版本錯誤,原因是我安裝的igbinary與php版本不匹配,重新安裝就好了,但是目前還不知道igbinary和命令列運行之間有什麼必然聯絡
thinkphp5 內建介面開發與使用