tp5自定義命令

2022-01-29 01:09:59 字數 3030 閱讀 3519

建立自定義命令列:

1.首先是註冊cammand:

<?php

return

[

2.建立類,繼承cammand:

<?php

usethink\console\command;

class chat extends

command

protected

function execute(input $input, output $output

)

}

下面說一下引數的含義

首先configure 和execute這兩個是必須存在的.

configure是配置資訊:

其中setname 標識的php  think 後面緊跟的命令名

自定義命令列還支援傳遞引數和可選選項

php  think chat start  --restart

其中start為引數,必須要輸入的,在configure中配置為:

->addargument('number1')

執行的是時候呼叫execute裡面的

$input->getargument('number1')  獲取使用者輸入的引數,

setdescription: 這個是執行php think list 展示的簡述,類似的還有

->sethelp("這個是使用--help時展示的資訊");

getargument()方法是有預設值的,不止乙個引數,下面是tp的框架**

/*

* * 新增引數

* @param string $name 名稱

* @param int $mode 型別,

* @param string $description 描述

* @param mixed $default 預設值

* @return command

*/public

function addargument($name, $mode = null, $description = '', $default = null

)

其中$mode:

引數型別: self::required 或者 self::optional

required常量值為1,

optional 常量值2

他們標識的是是否必須

示例:

->addargument('action', argument::optional, "start|stop|restart|reload", 'start')

其中action 作為execute獲取引數的鍵, argument::optional是$mode的值,表示非必填項,第三個是提示描述,最後乙個是預設值,預設傳遞的start

下面是可以選選項的使用

在configure方法裡:

->addoption('restart')

在執行execute裡通過

if($input->hasoption('restart'))

同理下面是tp框架的**:

/*

* * 新增選項

* @param string $name 選項名稱

* @param string $shortcut 別名

* @param int $mode 型別

* @param string $description 描述

* @param mixed $default 預設值

* @return command

*/public

function addoption($name, $shortcut = null, $mode = null, $description = '', $default = null

)

示例:

->addoption('daemon', 'd', option::value_none, '該程序已後台執行')

daemon 是execute獲取options時的鍵,d,是別名

同理$mode標識的是是否必須,

第三個引數是描述

第四個是預設值,

只有第乙個是必須的引數,其他均為可選,跟addarguments一致.

在命令列輸出資料:

下面是一些可以使用顏色的輸出

//

紅色背景上的白字

$output->writeln('white text on a red background');

//綠字

$output->writeln('green text'); //

黃字$output->writeln('yellow text');

//黃色色背景上的黑字

$output->writeln('black text on a yellow background'); //

青色背景上的黑字

$output->writeln('black text on a cyan background'); //

紅背景上的白字

$output->writeln('white text on a red background');

//支援混合輸出

$output->writeln('green text

black text on a cyan background......');

通過控制器去觸發命令列操作

//

呼叫命令列的指令

tp命令列還可以做一些簡單的判斷

//execute方法內

$question = $output->confirm($input, '是否繼續操作?', false);

if (!$question

)

Tp5自定義標籤

taglib build in cx,tags 內建標籤庫名稱 標籤使用不必指定標籤庫名稱 以逗號分隔 注意解析順序 namespace think template taglib use think template taglib class tags extends taglib access ...

tp5自定義異常處理

1.傳統模式自定義異常處理 定義model層分母為0的異常資訊 url api model index.php use think exception class index catch exception ex return true 定義controller層index資訊 use think ...

TP5 自定義分頁URL(攜帶自定義引數)

在做新聞或者商品的時候,url往往帶著引數跳轉,例如 www.com redcm news newslist.html?classid 13 tp5自帶的分頁函式,預設url是這樣的 www.com redcm news newslist.html?page 1 所以tp5自帶的分頁大多數情況下是滿...