Yii 中有一个拥有丰富功能的控制台,它们主要用于创建网站后台处理的任务。在项目根目录下执行相关操作,有意思的事,可以通过 yii 自带的功能,列出当前已有的命令。
查看当前控制台已有的脚本命令
正如你在截图中看到,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 <route> [--option1=value1 --option2=value2 ... argument1 argument2 ...]
以上,<route> 指的是控制器动作的路由。选项将填充类属性, 参数是动作方法的参数。
接着,我们来调用一下Yii自带的清除应用程序缓存这一命令功能
首先我们查看一下当前应用程序有哪些缓存key
发现有两个应用缓存,这是因为我们在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
创建一个自己的控制台命令
<?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); }
/**
*带参数
*/
public function actionHello($name='xiaoming')
{
echo "Hello ".$name;
}
}
我们就可以在项目根目录下执行上面创建的命令
[root@]# /usr/bin/php yii demo/add [root@]# /usr/bin/php yii demo/del
[root@]# /usr/bin/php yii demo/Hello
[root@]# /usr/bin/php yii demo/Hello marry
查看当前控制台已有的脚本命令
正如你在截图中看到,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 <route> [--option1=value1 --option2=value2 ... argument1 argument2 ...]
以上,<route> 指的是控制器动作的路由。选项将填充类属性, 参数是动作方法的参数。
接着,我们来调用一下Yii自带的清除应用程序缓存这一命令功能
首先我们查看一下当前应用程序有哪些缓存key
发现有两个应用缓存,这是因为我们在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
创建一个自己的控制台命令
<?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); }
/**
*带参数
*/
public function actionHello($name='xiaoming')
{
echo "Hello ".$name;
}
}
我们就可以在项目根目录下执行上面创建的命令
[root@]# /usr/bin/php yii demo/add [root@]# /usr/bin/php yii demo/del
[root@]# /usr/bin/php yii demo/Hello
[root@]# /usr/bin/php yii demo/Hello marry
扫码二维码 获取免费视频学习资料
- 本文固定链接: http://phpxs.com/post/6962/
- 转载请注明:转载必须在正文中标注并保留原文链接
- 扫码: 扫上方二维码获取免费视频资料
查 看2022高级编程视频教程免费获取