yii2命令行执行php命令commands(命令)使用方法

42 篇文章 0 订阅

yii2命令行执行php命令commands使用方法

YII2可以在命令行执行php命令

首先明白YII2自带的command示列 \app\commands\HelloController

class HelloController extends Controller
{
    /**
     * This command echoes what you have entered as the message.
     * @param string $message the message to be echoed.
     * @return int Exit code
     */
    public function actionIndex($message = 'hello world')
    {
        echo $message . "\n";

        return ExitCode::OK;
    }
}

上述代码是yii2中commands目录下的默认方法

可以直接在命令行中调用,调用方法如下

php yii hello/index

默认是类下的index方法 所以上述代码也可以简写为

php yii hello

输出

hello world

因此我们可以知道 命令格式如下 yii 控制器名称/动作名称。

actionIndex($message = ‘hello world’)

有一个参数,并且有一个默认值,很多时候我们也需要这样的操作。

所有我们执行

yii hello/index helloYii

将会打印出 helloYii。

因此我们可以得知 命令格式如下 yii 控制器名称/动作名称 参数1 参数2…

而action方法中

actionName($parameter1,$parameter...)

也可以进行传递参数,php yii 类/方法 参数1 参数2 … 在方法中接收参数 actionIndex(参数1,参数2,参数3)
上述方法中$message默认值是hello world 我们可以传递参数 如下

php yii hello ceshi
//输出
ceshi

也可以用crontab 设置定时任务 并把结果输出到日志文件

* * * * * cd 项目根目录 && php yii hello 参数1(可选) >>/home/logs/hello.logs 2>&1

如果需要操作数据库则需要在config/console.php配置db因为web上的配置和command是不同的。

YII2有了这个后我们可以实现 快速插入测试数据,快速执行一些不明白的函数,快速的对自己写的代码进行测试,如果需要配置定时任务给服务器运行也是可以的。

如果是Linux系统的话得 给yii文件执行权限 并且命令格式如下./yii 控制器名称/动作名称。

很多人也喜欢写到一个web的action,然后用来请求,但是web的action是执行完毕才能看见结果而command里面是可以实时echo出结果的,所有一些小动作都可以写一个command,比如说请求一个api一万次,并且每次都显示出结果来。这样有了command就能很方便的满足上面的需求了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值