zoukankan      html  css  js  c++  java
  • yii创建控制台命令

    创建控制台命令程序
    1、控制台命令继承自 yiiconsoleController控制器类
    2、在控制器类中,定义一个或多个动作,动作与控制台子命令相对应
    3、在动作方法中实现业务需求的代码


    运行控制台命令程序
    1、通过执行应用根目录yii脚本执行
    2、脚本命令后跟指定的路由:控制器ID/动作ID

    一个控制台命令demo:

    首先在 console/controllers目录项目创建一个 HelloController.php 文件

    namespace consolecontrollers;
    
    use Yii;
    use yiiconsoleController;
    
    class HelloController extends Controller
    {
        public function actionTest()
        {
            echo "Hello World 
    ";
        }
    }

    如果需要执行,先切换到根目录,然后执行控制台命令

    yii hello/test 即可

     

    带参数的控制台命令程序
    1、控制台命令程序可以接受参数,参数将传递个命令对应的动作方法;
    2、第一个参数对应第一个参数,第二个参数对应第二个参数,依次类推
    3、可以使用数组作为参数,数组参数用逗号隔开字符串生成;
    4、如果没有足够的参数,会提示出错,除非参数设定了默认值。

    namespace consolecontrollers;
    
    use Yii;
    use yiiconsoleController;
    
    class HelloController extends Controller
    {
        /**
         * @purpose 控制台命令传入单个参数
         * @param $name
         */
        public  function  actionWho($name)
        {
            echo "Hello $name 
    ";
        }
    
        /**
         * @purpose 控制台命令传入的参数为数组
         * @param $names
         */
        public function actionAll(array $names)
        {
            var_dump($names);
        }
    }

    1、传入单个参数: yii hello/who daicr 

    2、传入的参数为数组yii hello/all daicr ,gy

    带有选项的控制台命令程序
    1、覆盖在 yiiconsoleController::options() 中的方法,这个方法应该返回控制器类的属性列表
    2、当运行一个命令时,使用语法为:--optionName=optionValue 来传递给对应的属性,值 optionValue警徽分配到optionName属性
    3、自Yii2.0.8之后,可用用 optionAliases() 方法来增加选项别名,从而简化命令中选项的输入

    namespace consolecontrollers;
    
    use Yii;
    use yiiconsoleController;
    
    class HelloController extends Controller
    {
        public $rev = '';           // 定义参数
    
        /**
         * @purpose 覆盖在 yiiconsoleController::options() 中的方法,返回控制器类的属性列表
         * @return array
         */
        public function options()
        {
            return ['rev'];
        }
    
        /**
         * @purpose 增加选项别名(Yii2.0.8之后)
         * @return array
         */
        public function optionAliases()
        {
            return ['r' => 'rev'];
        }
    
        public function actionDemo()
        {
            if($this->rev == 1){
                echo strrev('hello world') . "
    ";
            }else{
                echo "hello world 
    ";
            }
        }
    }

    使用控制台选项: yii hello/demo --r=1

  • 相关阅读:
    在Ubuntu下使用命令删除目录
    Visual Studio添加lib到链接依赖项的几种方法
    svn回到某个历史版本的做法
    iOS菜鸟成长笔记(3)——斯坦福公开课学习(1)
    VS自定义开发向导中的vsdir文件的简单说明
    OpenGL编程逐步深入(十一)组合变换
    iOS菜鸟成长笔记(2)——网易彩票练习
    AngularJs轻松入门(九)与服务器交互
    AngularJs轻松入门(八)Cookies读写
    AngularJs轻松入门(七)多视图切换
  • 原文地址:https://www.cnblogs.com/chrdai/p/8612523.html
Copyright © 2011-2022 走看看