Yii2之控制台命令篇(console)

控制台命令

Yii 中有一个拥有丰富功能的控制台,它们主要用于创建网站后台处理的任务。在项目根目录下执行相关操作,有意思的事,可以通过 yii 自带的功能,列出当前已有的命令。

1、查看当前项目控制台已有的脚本命令

640833-20171027115059867-1906778230.png

正如你在截图中看到,Yii 中已经定义了一组默认情况下可用的命令:
  • AssetController - 允许合并和压缩你的 JavaScript 和 CSS 文件。 在 资源 - 使用 asset 命令 一节可获取更多信息。
  • CacheController - 清除应用程序缓存。
  • FixtureController - 管理用于单元测试 fixture 的加载和卸载。 这个命令的更多细节在 Testing Section about Fixtures.
  • HelpController - 提供有关控制台命令的帮助信息, 这是默认的命令并会打印上面截图所示的输出。
  • MessageController - 从源文件提取翻译信息。 要了解更多关于这个命令的用法,请参阅 I18N 章节.
  • MigrateController - 管理应用程序数据库迁移。 在 数据库迁移章节 可获取更多信息。
  • ServeController - Allows you run PHP built-in web server.

除了上面展示出的yii自带的控制台命令,其余的命令就是你自己在console下实现的脚本命令(就是你在console下写的控制器,也可以通过上面的方式打印并展示在其中)。比如下面

640833-20171027121501758-1467713047.png

对应着下面:

- log                                定时执行清除一个月之前的所有日志记录
    log/init                         清除日志

2、接着,我们来调用一下Yii自带的清除应用程序缓存这一命令功能

首先我们查看一下当前应用程序有哪些缓存key

640833-20171027115939226-113065013.png

发现有两个应用缓存,这是因为我们在components里配置了这两个缓存应用

return [
    'components' => [
        //默认缓存
        'cache' => [
            'class' => 'yii\redis\Cache',
            'redis' => [
                'hostname' => '192.168.23.32',
                'port' => 6379,
                'database' => 0
            ],
        ],
        //数据缓存
        'cache01' => [
            'class' => 'yii\redis\Cache',
            'redis' => [
                'hostname' => '192.168.23.32',
                'port' => 6379,
                'database' => 1
            ],
        ],
    ]
]

现在我们清除其中的cache01

640833-20171027120110633-1074887734.png

3、创建一个自己的控制台命令

<?php
/**
 * Created by PhpStorm.
 * User: 168
 * Date: 2017/10/23
 * Time: 14:00
 */

namespace console\controllers;

use common\models\Redis;
use yii\console\Controller;

/**
 * 小demo
 * Class DemoController
 * @package console\controllers
 */
class DemoController extends Controller
{
    /**
     * 添加缓存
     */
    public function actionAdd()
    {
        $hashKey = 'caiyu';
        $field = 'nine';
        $val = 9;
        Redis::hsetCache($hashKey, $field, $val, $expire = 0, $selectDb=0);
    }

    /**
     * 删除缓存
     */
    public function actionDel()
    {
        $hashKey = 'caiyu';
        //
        $field = ['nine', 'six'];
        Redis::hdelCache($hashKey, $field, 0);
    }
}

我们就可以在项目根目录下执行上面创建的命令

[root@mopon-v-dev-1 daoyan_yt]# /usr/bin/php yii demo/add
[root@mopon-v-dev-1 daoyan_yt]# /usr/bin/php yii demo/del

4、总结

控制台命令可以实现很多功能,比如数据库迁移、定时任务、清除应用临时缓存等诸多自动化维护的功能。在实际项目开发中还是会经常用到的。

参考资料

转载于:https://www.cnblogs.com/renzhicai/p/7742536.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值