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
        ]);
    }
    

      

  • 相关阅读:
    线程池参数设置技巧
    线程池的七个参数
    bug篇——Windows启动redis报错Creating Server TCP listening socket 127.0.0.1:6379: bind: No error
    总结篇——git本地仓库上传更新到github
    实例篇——springboot自定义拦截器
    总结篇——从零搭建maven多模块springboot+mybatis项目
    bug篇——MySQL的时区问题
    工具类篇——时间处理Calendar类
    安装篇——nginx安装ssl模块转发https请求
    总结篇——nginx代理服务器
  • 原文地址:https://www.cnblogs.com/itfenqing/p/6930442.html
Copyright © 2011-2022 走看看