今天我们共同学习一下在yii2中创建命令。
一 、 首先 根目录下console目录就是配置的地方
1、查看当前项目控制台已有的脚本命令
正如你在截图中看到,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.
2、创建一个自己的控制台命令
<?php
/**
* Created by DemoController.php.
* User: gongzhiyang
* Date: 19/6/18
* Time: 6:40 下午
*/
namespace console\controllers;
use yii\console\Controller;
/**
* demo
* Class DemoController
* @package console\controllers
*/
class DemoController extends Controller
{
/**
* 添加缓存
*/
public function actionAdd()
{
$hashKey = 'caiyu';
$field = 'nine';
$val = 9;
return $val;
}
/**
* 删除缓存
*/
public function actionDel()
{
$hashKey = 'caiyu';
//
$field = ['nine', 'six'];
return $field;
}
}
3、我们就可以在项目根目录下执行上面创建的命令
gongzgiyangdeMacBook-Air:yii2advanced gongzhiyang$ ./yii demo/add
[x] Sent 'Hello World!'
gongzgiyangdeMacBook-Air:yii2advanced gongzhiyang$ ./yii demo/del
[x] Sent 'Hello World!'
4、总结
控制台命令可以实现很多功能,比如数据库迁移、定时任务、清除应用临时缓存等诸多自动化维护的功能。在实际项目开发中还是会经常用到的。