基本使用#列出所有可用命令phpartisanlist#查看命令帮助phpartisanhelpmigrate编写命令phpartisanmake:commandSendEmails#app/Console/Commands/SendEmails.phpnamespaceApp\Console\Commands;useApp\User;useApp\DripEmailer;useIlluminate\Console\Command;classSendEmailsextendsCommand{/***命令行名称和签名*/protected$signature='email:send{user}';/***命令行描述*/protected$description='向用户发送水滴邮件';公共函数__construct(){parent::__construct();}/***命令操作内容*/publicfunctionhandle(DripEmailer$drip){$drip->send(User::find($this->argument('user')));}}命令参数和选项//必需参数email:send{user}//可选参数email:send{user?}//可选参数,默认值email:send{user=foo}//选项,传入则为true,否则为falsemail:send{user}{--queue}//接收选项值email:send{user}{--queue=}//选项默认值email:send{user}{--queue=default}//选项的简写email:send{user}{--Q|queue}//输入数组;phpartisanemail:sendfoobaremail:send{user*}//选项数组;phpartisanemail:send--id=1--id=2email:send{user}{--id=*}//输入描述email:send{user:用户的ID}{--queue=:是否作业应该排队}获取输入$userId=$this->argument('user');$arguments=$this->arguments();$queueName=$this->option('队列');$options=$this->options();Writeoutput#输出文本$this->line('Displaythisonthescreen');#输出信息$this->info('Displaythisonthescreen');#输出错误$this->error('Somethingwentwrong!');#outputform$headers=['Name','Email'];$users=App\User::all(['name','email'])->toArray();$this->table($headers,$users);#输出进度条$users=App\User::all();$bar=$this->output->createProgressBar(count($users));$bar->start();foreach($usersas$user){$this->performTask($user);$bar->advance();}$bar->finish();注册命令#app/Console/Kernel.php//手动注册命令protected$commands=[Commands\SendEmails::class];//自动扫描目录注册命令protectedfunctioncommands(){$this->load(__DIR__.'/命令');需要base_path('routes/console.php');}
