版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36663951/article/details/80255952
除了 Artisan 提供的系统命令之外,还可以编写自己的命令。自定义命令通常存放在 app/Console/Commands
目录下;当然,你也可以自己选择存放位置,只要该命令类可以被 Composer 自动加载即可。
要创建一个新命令,你可以使用 Artisan 命令 make:command
,该命令会在 app/Console/Commands
目录下创建一个新的命令类。如果该目录不存在,不用担心,它将会在你首次运行 Artisan 命令 make:command
时被创建。生成的命令将会包含默认的属性设置以及所有命令都共有的方法:
php artisan make:command SendEmails
接下来,你需要在该命令可以通过Artisan CLI执行之前注册这个命令。
命令生成以后,需要填写该类的signature
和 description
属性,这两个属性在调用 list
显示命令的时候会被用到。handle
方法在命令执行时被调用,你可以将所有命令逻辑都放在这个方法里面。
注:为了更好地实现代码复用,最佳实践是保持控制台命令的轻量并让它们延迟到应用服务中完成任务。在下面的例子中,我们注入了一个服务类来完成发送邮件这样的“繁重”任务。
下面让我们来看一个例子,注意我们可以在命令类的构造函数中注入任何依赖,Laravel 服务容器将会在构造函数中自动注入所有依赖类型提示:
<?php namespace App\Console\Commands; use App\User;use App\DripEmailer;use Illuminate\Console\Command; class SendEmails extends Command{ /** * The name and signature of the console command. * * @var string * @translator laravelacademy.org */ protected $signature = 'email:send {user}'; /** * The console command description. * * @var string */ protected $description = 'Send drip e-mails to a user'; /** * The drip e-mail service. * * @var DripEmailer */ protected $drip; /** * Create a new command instance. * * @param DripEmailer $drip * @return void */ public function __construct(DripEmailer $drip) { parent::__construct(); $this->drip = $drip; } /** * Execute the console command. * * @return mixed */ public function handle() { $this->drip->send(User::find($this->argument('user'))); }}
基于闭包的命令和闭包路由之于控制器一样,为以类的方式定义控制台命令提供了可选方案,在 app/Console/Kernel.php
文件的 commands
方法中,Laravel 加载了 routes/console.php
文件:
/** * 为应用注册基于闭包的命令. * * @return void */protected function commands(){ require base_path('routes/console.php');}
尽管这个文件没有定义 HTTP 路由,但是它定义了基于控制台的应用入口(和路由作用一样),在这个文件中,你可以使用 Artisan::command
方法定义所有基于闭包的路由。command
方法接收两个参数 —— 命令标识和接收命令参数和选项的闭包:
Artisan::command('build {project}', function ($project) { $this->info("Building {$project}!");});
该闭包被绑定到底层命令实例,所以你可以像在完整的命令类中一样访问所有辅助方法。
挂载到
Esinit.php
通过php artisan 查看
Original url: Access
Created at: 2018-11-29 19:15:59
Category: default
Tags: none
未标明原创文章均为采集,版权归作者所有,转载无需和我联系,请注明原出处,南摩阿彌陀佛,知识,不只知道,要得到
java windows火焰图_mob64ca12ec8020的技术博客_51CTO博客 - 在windows下不可行,不知道作者是怎样搞的 监听SpringBoot 服务启动成功事件并打印信息_监听springboot启动完毕-CSDN博客 SpringBoot中就绪探针和存活探针_management.endpoint.health.probes.enabled-CSDN博客 u2u转换板 - 嘉立创EDA开源硬件平台 Spring Boot 项目的轻量级 HTTP 客户端 retrofit 框架,快来试试它!_Java精选-CSDN博客 手把手教你打造一套最牛的知识笔记管理系统! - 知乎 - 想法有重合-理论可参考 安宇雨 闲鱼 机械键盘 客制化 开贴记录 文本 linux 使用find命令查找包含某字符串的文件_beijihukk的博客-CSDN博客_find 查找字符串 ---- mac 也适用 安宇雨 打字音 记录集合 B站 bilibili 自行搭建 开坑 真正的客制化 安宇雨 黑苹果开坑 查找工具包maven pom 引用地 工具网站 Dantelis 介绍的玩轴入坑攻略 --- 关于轴的一些说法 --- 非官方 ---- 心得而已 --- 长期开坑更新 [本人问题][新开坑位]关于自动化测试的工具与平台应用 机械键盘 开团 网站记录 -- 能做一个收集的程序就好了 不过现在没时间 -- 信息大多是在群里发的 - 你要让垃圾佬 都去一个地方看难度也是很大的 精神支柱 [超级前台]sprinbboot maven superdesk-app 记录 [信息有用] [环境准备] [基本完成] [sebp/elk] 给已创建的Docker容器增加新的端口映射 - qq_30599553的博客 - CSDN博客 [正在研究] Elasticsearch, Logstash, Kibana (ELK) Docker image documentation elasticsearch centos 安装记录 及 启动手记 正式服务器 39 elasticsearch 问题合集 不断更新 6.1.1 | 6.5.1 两个版本 博客程序 - 测试 - bug记录 等等问题 laravel的启动过程解析 - lpfuture - 博客园 OAuth2 Server PHP 用 Laravel 搭建带 OAuth2 验证的 RESTful 服务 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区 利用Laravel 搭建oauth2 API接口 附 Unauthenticated 解决办法 - 煮茶的博客 - SegmentFault 思否 使用 OAuth2-Server-php 搭建 OAuth2 Server - 午时的海 - 博客园 基于PHP构建OAuth 2.0 服务端 认证平台 - Endv - 博客园 Laravel 的 Artisan 命令行工具 Laravel 的文件系统和云存储功能集成 浅谈Chromium中的设计模式--终--Observer模式 浅谈Chromium中的设计模式--二--pre/post和Delegate模式 浅谈Chromium中的设计模式--一--Chromium中模块分层和进程模型 DeepMind 4 Hacking Yourself README.md update 20211011
Laravel China 简书 知乎 博客园 CSDN博客 开源中国 Go Further Ryan是菜鸟 | LNMP技术栈笔记 云栖社区-阿里云 Netflix技术博客 Techie Delight Linkedin技术博客 Dropbox技术博客 Facebook技术博客 淘宝中间件团队 美团技术博客 360技术博客 古巷博客 - 一个专注于分享的不正常博客 软件测试知识传播 - 测试窝 有赞技术团队 阮一峰 语雀 静觅丨崔庆才的个人博客 软件测试从业者综合能力提升 - isTester IBM Java 开发 使用开放 Java 生态系统开发现代应用程序 pengdai 一个强大的博主 HTML5资源教程 | 分享HTML5开发资源和开发教程 蘑菇博客 - 专注于技术分享的博客平台 个人博客-leapMie 流星007 CSDN博客 - 舍其小伙伴 稀土掘金 Go 技术论坛 | Golang / Go 语言中国知识社区
最新评论