Magento2自定义命令
命令命名准则
命名指南概述
Magento 2引入了一个新的命令行界面(CLI),使组件开发人员能够插入模块提供的命令。
Command name
Command name 在命令中,它紧跟在命令的名称之后。
例如:
bin/magento setup:upgrade 中: bin/magento 是命令的名称 && setup:upgrade 是命令的名称。
输入以下内容以显示当前命令列表:
php <your Magento install dir>/bin/magento --list
格式 : group:[subject:]action
group
group表示一组相关命令。组中的命令显示在列表中,这反过来使用户更容易找到所需的命令。要查找命令的组名,请设想可以使用它的主题区域。主题领域 可以是以下任何一种:
- 域区域(例如,模块操作模块,提供某些信息的命令信息)
- 工作流区域(例如,admin可以由管理员使用,dev可供开发人员使用)
subject
subject 是可以行动的 subject。主题是可选的,但它可用于定义使用同一对象的命令集。如果主题由复合词表示,请使用短划线或连字符分隔单词。
action
action 是命令执行的操作。
实例:
###一般命令:只有一个组和一个动作
magento setup:install
magento module:status ###一组带有主题的命令
magento setup:config:set
magento setup:config:delete
magento setup:db-schema:upgrade
magento setup:db-data:upgrade
如何添加CLI命令
添加CLI命令的概述
Magento使您的组件能够向类似Symfony的命令行界面(CLI)添加命令。
关于Magento CLI
Magento有一个命令行界面,可以执行安装和配置任务:<your Magento install dir>/bin/magento。新界面执行多项任务,包括:
- 安装Magento(以及相关任务,如创建或更新数据库模式,创建部署配置等)
- 清除缓存
- 管理索引,包括重建索引
- 创建翻译词典和翻译包
- 为插件生成不存在的类(如工厂和拦截器),为对象管理器生成依赖项注入配置。
- 部署静态视图文件
- 从LESS创建CSS
其他福利:
- 单个命令(php
<your Magento install dir>/bin/magento list)列出了所有可用的安装和配置命令 - 基于Symfony的一致用户界面
- CLI是可扩展的,因此第三方开发人员可以“插入”它。
这具有消除用户学习曲线的额外好处 - 禁用模块的命令不显示。
先决条件
在开始之前,请确保您了解以下内容:
- 所有Magento命令行界面(CLI)命令都依赖于Magento应用程序,并且必须能够访问其上下文,依赖项注入,插件等。
- 所有CLI命令都应在模块范围内实现, 并且应取决于模块的状态。
- 您的命令可以使用对象管理器和Magento依赖注入功能; 例如,它可以使用构造函数依赖注入。
您必须按照以下任何部分中的说明注册命令:
使用依赖项注入添加CLI命令
Magento 2示例模块提供了许多编程技术的演示,包括使用依赖注入添加CLI命令 。看一下这个sample-module-command例子吧。该模块的README.md讨论了如何安装它。
以下是该过程的摘要:
创建一个Command类(建议的位置是
<your component root dir>/Console/Command)。请参阅
app/code/Magento/CommandExample/Console/Command示例。Magento\Framework\Console\CommandListInterface使用依赖注入(<your component root dir>/etc/di.xml)声明您的Command类。清理 缓存 和已编译的代码目录:
cd <your Magento install dir>/var
rm -rf cache/* page_cache/* di/* generation/*使用Composer自动加载器添加CLI命令
Magento2自定义命令的更多相关文章
- node生成自定义命令(yargs/commander)
第一部分可以生成一个自定义命令,例如常见的”express”,yargs和commander则可以在生成的自定义命令上做扩展,yargs将命令扩展成类似express --l xx的形式;而comma ...
- laravel 自定义命令
1.自定义命令:将自定义命令保存在app/Console/Commands,也可以在composer.json文件配置自动加载,自由选择想要放置的地方 php artisan make:console ...
- Linux自定义命令
linux自定义命令,就是给当前命令取个别名.比如:ls 列出当前的文件,rm + 文件名 就能删除该文件,如何自定义命令,可以使用alias比如:alias gobin='cd /opt/tomca ...
- cmd alias 自定义命令
简短步骤:1.关闭所有在运行的CMD窗口2.创建文件C:\cmd-alias.bat,包含以下内容:[python] view plain copydoskey sayhello=echo Hello ...
- WPF自定义命令和处发命令
接实现ICommand接口的命令.在介绍之前,先看一下ICommand接口的原型: event EventHandler CanExecuteChanged; bool CanExecute(obje ...
- SourceInSight自定义命令说明与应用
1.自定义命名设置界面(Tool -> Custom Commands...) Command 显示当前选中命令的名字. 下拉列表中包含了所有的自定义命令. Run 命令行,当调用自定义命令时, ...
- Linux 创建自定义命令
Linux 创建自定义命令 Linux 可以创建自定义使用命令 这里我们采取使用“alias”命令.这里我们首先了解两个文件,通过这两个文件我们可以根据环境配置相应的自定义命令. 该文件内创建的自定义 ...
- linux_shell自定义命令
一.命令可执行文件所在目录 shell命令可执行文件所在目录是保存在环境变量PATH中的,终端输入如下命令查看 PATH 环境变量的内容: $ echo $PATH 我的linux输出如下: /opt ...
- Mac 命令行,自定义命令
例如自定义命令 gotoXFolder, 直接进入XFolder文件夹, XFolder地址为~/abc/def/Xfolder 步骤: 1. 在home文件夹下创建.profile文件 在.prof ...
随机推荐
- 【学习】Linux Shell脚本实例之一
1.程序流程控制实例 程序流程控制,实际上就是改变程序的执行顺序.程序在执行过程中若流程被改变,就可能导致输出不同,因此利用这一特性就能够实现程序执行结果的控制.程序流程控制可分为“选择”和“循环”这 ...
- LeetCode算法题-Binary Number with Alternating Bits(Java实现)
这是悦乐书的第292次更新,第310篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第160题(顺位题号是693).给定正整数,检查它是否具有交替位:即它的二进制数的任意两 ...
- LeetCode算法题-Array Partition I(Java实现)
这是悦乐书的第262次更新,第275篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第129题(顺位题号是561).给定一个2n个整数的数组,你的任务是将这些整数分组为n对 ...
- Java基础——0 前言
- Django contenttypes 组件
contenttypes组件 介绍 Django包含一个contenttypes应用程序(app),可以跟踪Django项目中安装的所有模型(Model),提供用于处理模型的高级通用接口. Conte ...
- 【Python 18】BMR计算器2.0(数值类型转换与while循环)
1.案例描述 基础代谢率(BMR):我们安静状态下(通常为静卧状态)消耗的最低热量,人的其他活动都建立在这个基础上. 计算公式: BMR(男) = (13.7*体重kg)+(5.0*身高cm)-(6. ...
- centos7下kubernetes(16。kubernetes-滚动更新)
滚动更新:一次只更新一小部分副本,成功后,在更新更多的副本,最终完成所有副本的更新. 滚动更新的最大好处是零停机,整个更新过程始终有副本在运行,从而保证了业余的连续性 下面部署三个副本的应用,出事镜像 ...
- 好程序员web前端分享18个用CSS制作出来的东西
好程序员web前端分享18个用CSS制作出来的东西,与流行的看法相反,CSS不仅仅是用来提供一个WEB页面的基本风格,以使它看起来更有吸引力.还有很多其他的事情,CSS也可以做的很好.由于它创建动画和 ...
- System.IO在不存在的路径下创建文件夹和文件的测试
本文测试System.IO命名空间下的类,在不存在的路径下创建文件夹和文件的效果: 首先测试创建文件夹: System.IO.Directory.CreateDirectory(@"C:\A ...
- FineUI十周年纪念版即将发布(基于像素的响应式布局,独此一家)!
[新版预报]FineUI十周年纪念版(v5.0.0)即将于2018-04-23发布! 官网示例已更新:http://pro.fineui.com/ 特别助攻:基于像素的响应式布局,FineUI独家秘笈 ...