zoukankan      html  css  js  c++  java
  • Laravel之命令

    一.创建命令
    php artisan make:console SendEmails
    
    上述命令将会生成一个类app/Console/Commands/SendEmails.php,当创建命令时,--command选项可用于分配终端命令名(在终端调用命令时用):
    
    php artisan make:console SendEmails --command=emails:send
    
    二.生成的命令如下
    <?php
    
    namespace YouxinConsoleCommands;
    
    use IlluminateConsoleCommand;
    use Log;
    
    class SendEmails extends Command
    {
        /**
         * The name and signature of the console command.
         *
         * @var string
         */
        protected $signature = 'emails:send {user}';  //接受一个参数
    
        /**
         * The console command description.
         *
         * @var string
         */
        protected $description = '这是发送邮件的命令';
    
        /**
         * Create a new command instance.
         *
         * @return void
         */
        public function __construct()
        {
            parent::__construct();
        }
    
        /**
         * Execute the console command.
         *
         * @return mixed
         */
        public function handle()
        {
            // 输入提示
            //$name = $this->ask('你确实要发邮件吗?');
            // 输入密码
            //$password = $this->secret('What is the password?');
            // 执行一个用户确认
            if ($this->confirm('你确实要发邮件吗? [y|N]')) {
                //$this->info('正在发送邮件');//打印提示信息到控制台
                $this->error('正在发送邮件');//打印错误信息到控制台
                Log::alert('给用户' . $this->argument('user'). '发送了邮件'); //取出参数user
            }
        }
    }
    
    
    三.注册命令
    命令编写完成后,需要注册到Artisan才可以使用,这可以在app/Console/Kernel.php文件中完成。
    
    protected $commands = [
            CommandsSendEmails::class,
    ];
    
    四.调用命令
    查看所有可用命令:
    php artisan list //应该可以查看到刚才创建的命令emails:send
    查看命令帮助:
    php artisan help migrate
    
    1.控制台调用命令
    artisan email:send john
    
    2.代码调用
    Route::get('/foo', function () {
        $exitCode = Artisan::call('email:send', [
            'user' => 1
        ]);
    });
    
    3.在其他控制台命令中调用
    /**
     * 执行控制台命令
     *
     * @return mixed
     */
    public function handle(){
        $this->call('email:send', [
            'user' => 1
        ]);
    }
    

      

  • 相关阅读:
    Maven的使用--Eclipse在线安装Maven插件m2e
    Maven的使用--安装
    oracle 函数
    oracle dblink使用
    【JVM】应用CPU冲高问题
    【Git】git操作(转)
    【java】判断两个对象是否相等
    【JDK】JDK自带工具应用——堆分析
    【script】Github上的工具脚本useful-scripts
    【JWT】JWT实现用户认证(转)
  • 原文地址:https://www.cnblogs.com/itfenqing/p/6930442.html
Copyright © 2011-2022 走看看