php artisan tanker,Artisan 开发
Artisan 开发
简介
除了 Artisan 本身提供的命令之外,您也可以建立与您的应用程序相关的命令,这些自建命令将会存放在 app/commands 目录底下;然而,您可以任意选择存放位置,只要您的命令能够被 composer.json 自动载入。
自定义命令
生成类
要创建一个新的命令,您可以使用 command:make 这个 Artisan 命令,这将产生一个命令基本文件协助您开始编码:
生成一个新的命令类php artisan command:make FooCommand
默认情况下,生成的命令将被储存在 app/commands 目录;然而,您可以指定自定义路径或命名空间:php artisan command:make FooCommand --path=app/classes --namespace=Classes
在创建命令时,加上 --command 这个选项,将可以指定这个命令的名称:php artisan command:make AssignUsers --command=users:assign
撰写自定义命令
当自定义命令生成后,您需再填写命令的 名称 与 描述,这部份将会显示在命令行表清单的画面上。
当您的自定义命令被执行时,将会调用 fire 方法,您可以在此加入任何的逻辑判断。
参数与选项
getArguments 与 getOptions 方法是用来接收要传入您的自定义命令的地方,这两个方法都会回传一组命令数组,并由数组清单所组成。
当定义 arguments 时,该数组对应的值表示如下:array($name, $mode, $description, $defaultValue)
参数 mode 可以是下列其中一项: InputArgument::REQUIRED 或 InputArgument::OPTIONAL.
当定义 options 时,该数组对应的值表示如下:array($name, $shortcut, $mode, $description, $defaultValue)
对选项而言, 参数 mode 可以是下列其中一项: InputOption::VALUE_REQUIRED, InputOption::VALUE_OPTIONAL, InputOption::VALUE_IS_ARRAY, InputOption::VALUE_NONE.
该 VALUE_IS_ARRAY 模式表示调用命令时可以传入多个值:php artisan foo --option=bar --option=baz
该 VALUE_NONE 模式表示将选项当作是"开关"php artisan foo --option
取得输入
当您的命令执行时,您需要让您的应用程序可以获取到这些参数和选项的值, 要做到这一点,您可以使用 argument 和 option 方法:
取得自定义命令的输入参数$value = $this->argument('name');
取得所有自定义命令的输入参数$arguments = $this->argument();
取得自定义命令的输入选项$value = $this->option('name');
取得所有自定义命令的输入选项$options = $this->option();
产生输出
显示信息到终端上,您可以使用 info, comment, question 和error方法,每一种方法将会对应到一个 ANSI 颜色。
显示信息到终端$this->info('Display this on the screen');
显示错误信息到终端$this->error('Something went wrong!');
询问式输入
您也可以使用 ask 和 confirm 方法来提示用户进行输入:
提示用户进行输入$name = $this->ask('What is your name?');
提示用户进行加密输入$password = $this->secret('What is the password?');
提示用户进行确认if ($this->confirm('Do you wish to continue? [yes|no]'))
{
//
}
您也可以指定一个默认值给 confirm 方法,可以是 true 或 false:$this->confirm($question, true);
注册命令
注册一个 Artisan 命令
当您的自定义命令完成后,您需要向 Artisan 注册才能使用,通常是在 app/start/artisan.php ,在此文件内,您可以使用 Artisan::add 方法注册该命令:Artisan::add(new CustomCommand);
在 IoC Container 内注册命令
如果您的自定义命令是在应用程序 IoC container 内注册,您需要使用 Artisan::resolve 方法让 Artisan 可以使用:Artisan::resolve('binding.name');
在 Service Provider 内注册命令
如果您需要从 service provider 注册命令,您应该在 provider 的 boot 方法内调用 commands 方法,传入 IoC container 绑定此命令:public function boot()
{
$this->commands('command.binding');
}
调用其它命令
有时候您可能希望在您的命令内部调用其它命令,此时您可以使用 call 方法:$this->call('command:name', array('argument' => 'foo', '--option' => 'bar'));
php artisan tanker,Artisan 开发相关推荐
- php artisan dumpautoload,artisan 命令使用总结
artisan 命令使用过程的一些记录! ==数据迁移== 之前一直对数据迁移很感兴趣,也看过了几遍文档,一直没怎么理解,也没怎么深入研究,今天得空,认真看了文档,百度了一些相关文章 点击这里,亲自试 ...
- php artisan command,artisan command 小技巧
我遇到了command创建model的问题 我猜使用laravel开发的同学和我差不多应该都有一个强迫症,就是php artisan make:model Topic 后,会把app下的模型移动到自己 ...
- php artisan --,php artisan
报错信息: make 是创建php文件的命令,你截图里的 make:command 是创建一个命令行任务,比如你创建了一个命令 test ,就可以在命令行执行 php artisan test 来执行 ...
- php artisan nohup,artisan命令生成和redis消息订阅和任务调度
提示,本文章是针对5.3版本 执行命令生成一个artisan命令,文件会在1app/Console/Commands目录下 php artisan make:command Tcm --command ...
- laravel中artisan工具(命令)的使用详解
artisan工具,首先,这个是一个php文件,它放在我们laravel框架的根目录 Artisan工具简介 Artisan 是 Laravel 中自带的命令行工具的名称.它提供了一些对您的应用开发有 ...
- 【老姐学PHP】PHP框架lavarel之Artisan命令
php artisan功能测试 1.php artisan 命令列表 2.常用命令 3.php artisan route 4.php artisan make 4.1 php artisan mak ...
- php artisan命令表,php artisan 命令列表
php artisan 命令列表 命令获取 上面的翻译内容 命令说明备注 php artisan make:resource ?创建api返回格式化资源>=5.4版本可用 php artisa ...
- laravel artisan 使用
全局篇 查看artisan命令 php artisan php artisan list 查看某个帮助命令 php artisan help make:model 查看laravel版本 php ar ...
- Artisan、文件上传、缓存使用、错误和日志
Artisan artisan是laravel中自带的命令行工具的名称 由强大的Symfony Console组件驱动的 提供了一些对应用开发有帮助的命令 查看所有可用的Artisan的命令(list ...
最新文章
- Node.js 在本地生成日志文件
- 老男孩Python全栈开发(92天全)视频教程 自学笔记07
- java ajax 点赞功能_Ajax+jQuery+bootstrap+Java实现异步点赞功能,并限制点击次数
- Doom HDU - 5239(线段树+思维)
- java context.write_Channel.write() 和 ChannelHandlerContext.write() 的区别
- 神经网络与深度学习——TensorFlow2.0实战(笔记)(三)(python常量、变量和表达式)
- Informix IDS 11零碎治理(918考试)认证指南,第 7 部分: IDS复制(24)
- 腾云驾雾的计算,让你蒙圈了么?
- 福州大学软件工程1916|W班 第10、11次作业成绩排名
- 甲骨文前高管跳槽至富士通 主抓企业级存储
- LR回归原理和损失函数的推导
- 程序流程图生成器 程序源代码生成/转换成流程图 函数调用关系图
- SOTA级发丝抠图模型PP-Matting开源,支持多场景精细化分割
- ArcGIS 拓扑验证与编辑共享要素
- 华软计算机网络课程设计任务,计算机网络网络课程设计任务.doc
- 计算机网络——大数据、物联网
- java.io.InvalidClassException: made.customException; local class incompatible: stream classdesc seri
- ps cs6选择并遮住在哪
- 利用python-docx和docxcompose实现word合并,自动化办公
- 如何在Excel中使用公式将生日自动转换成星座?
热门文章
- 文档中的文字太紧凑,word行间距怎么调整?
- HTML+JS实现浏览器前端下载图片
- CUDA C++基本写法
- 如何秒下单?python的淘宝秒杀抢购下单源码参考
- SolidWorks的通过函数驱动绘制曲线
- 金蝶软件怎么过账_金蝶专业版怎么反过账
- 解读!10篇人机交互领域高引论文合集
- C#,入门教程(03)——Visual Studio 2022编写彩色Hello World与动画效果
- java 打印机类printer_GitHub - 505058216/thermal_printer: Java实现网络小票打印机自定义无驱打印...
- UEFI启动流程浅析