命令命名准则

命名指南概述

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是可扩展的,因此第三方开发人员可以“插入”它。
      这具有消除用户学习曲线的额外好处
    • 禁用模块的命令不显示。

先决条件

在开始之前,请确保您了解以下内容:

使用依赖项注入添加CLI命令

Magento 2示例模块提供了许多编程技术的演示,包括使用依赖注入添加CLI命令 。看一下这个sample-module-command例子吧。该模块的README.md讨论了如何安装它。

以下是该过程的摘要:

  1. 创建一个Command类(建议的位置是<your component root dir>/Console/Command)。

    请参阅app/code/Magento/CommandExample/Console/Command示例。

  2. Magento\Framework\Console\CommandListInterface 使用依赖注入(<your component root dir>/etc/di.xml)声明您的Command类。
  3. 清理 缓存 和已编译的代码目录:

    cd <your Magento install dir>/var
    rm -rf cache/* page_cache/* di/* generation/*

      

    使用Composer自动加载器添加CLI命令

Magento2自定义命令的更多相关文章

  1. node生成自定义命令(yargs/commander)

    第一部分可以生成一个自定义命令,例如常见的”express”,yargs和commander则可以在生成的自定义命令上做扩展,yargs将命令扩展成类似express --l xx的形式;而comma ...

  2. laravel 自定义命令

    1.自定义命令:将自定义命令保存在app/Console/Commands,也可以在composer.json文件配置自动加载,自由选择想要放置的地方 php artisan make:console ...

  3. Linux自定义命令

    linux自定义命令,就是给当前命令取个别名.比如:ls 列出当前的文件,rm + 文件名 就能删除该文件,如何自定义命令,可以使用alias比如:alias gobin='cd /opt/tomca ...

  4. cmd alias 自定义命令

    简短步骤:1.关闭所有在运行的CMD窗口2.创建文件C:\cmd-alias.bat,包含以下内容:[python] view plain copydoskey sayhello=echo Hello ...

  5. WPF自定义命令和处发命令

    接实现ICommand接口的命令.在介绍之前,先看一下ICommand接口的原型: event EventHandler CanExecuteChanged; bool CanExecute(obje ...

  6. SourceInSight自定义命令说明与应用

    1.自定义命名设置界面(Tool -> Custom Commands...) Command 显示当前选中命令的名字. 下拉列表中包含了所有的自定义命令. Run 命令行,当调用自定义命令时, ...

  7. Linux 创建自定义命令

    Linux 创建自定义命令 Linux 可以创建自定义使用命令 这里我们采取使用“alias”命令.这里我们首先了解两个文件,通过这两个文件我们可以根据环境配置相应的自定义命令. 该文件内创建的自定义 ...

  8. linux_shell自定义命令

    一.命令可执行文件所在目录 shell命令可执行文件所在目录是保存在环境变量PATH中的,终端输入如下命令查看 PATH 环境变量的内容: $ echo $PATH 我的linux输出如下: /opt ...

  9. Mac 命令行,自定义命令

    例如自定义命令 gotoXFolder, 直接进入XFolder文件夹, XFolder地址为~/abc/def/Xfolder 步骤: 1. 在home文件夹下创建.profile文件 在.prof ...

随机推荐

  1. SAP MM 启用批次管理的物料MB21创建预留单据时批次号可以为空!

    SAP MM 启用批次管理的物料MB21创建预留单据时批次号可以为空! 如下预留, 批次号字段为空. 实际上该物料是有激活batch management的, For MB21, it is just ...

  2. Echarts地图使用经验-地图变形和添加数据

    关于echart2,echart3地图的使用一点人生经验: 1.echart3,echart2加载地图变形修复. 最近在使用echart2使用过程中,发现加载海南地图会产生变形.如下图,海南地图产生了 ...

  3. C# 发送电子邮件源码片段

    下面代码内容是关于C# 发送电子邮件片段的代码,应该对各位有所用途. using System;using System.Web;using System.Web.Mail;public class ...

  4. Servlet工作原理解析 《深入分析java web 技术内幕》第九章

    参考关于servblet的相关文章 侧重概况:https://blog.csdn.net/levycc/article/details/50728921 ibm的相关:https://www.ibm. ...

  5. Redhat安装Oracle 11g (转)

    1.1     安装前准备 1.1.1     修改操作系统核心参数 在Root用户下执行以下步骤: 1.1.1.1 修改/etc/security/limits.conf文件 输入命令:vi /et ...

  6. CentOS7.2重置root密码的处理方法

    第一个里程碑 --在启动GRUB菜单中选择编辑选项,按键 "e" 进入编辑; 第二个里程碑 -- 大约在第16行找到 "ro" 将 "ro" ...

  7. 修改 TeamViewer ID 的方法

    TeamViewer 使用频繁后会被判定为商业用途,不可用.此软件的账号和设备mac地址绑定. 修改TeamViewer ID后可以重新开始使用.下述方法可以成功修改TeamViewer ID. 关闭 ...

  8. 【Linux基础】查看某一端口是否开放(1025为例)

    1.使用lsof 命令来查看端口是否开放 lsof -i:1025 //如果有显示说明已经开放了,如果没有显示说明没有开放 lsof(list open files)是一个列出当前系统打开文件的工具. ...

  9. 2018/05/14 03:56:10 [error] 12959#0: *42285845507 client intended to send too large body: 1664288 bytes

    Syntax: client_max_body_size size; Default: client_max_body_size 1m; Context: http, server, location ...

  10. LInkedHashMap实现最近被使用(LRU)缓存

    在最近的面试中,我曾被多次问到,怎么实现一个最近最少使用(LRU)的缓存.缓存可以通过哈希表来实现,然而为这个缓存增加大小限制会变成另一个有意思的问题.现在我们看一下怎么实现. 最近最少使用缓存的回收 ...