n98 / magerun2
用于管理 Magento 项目和安装的工具
Requires
- php: ^7.4||^8.0
- ext-dom: *
- ext-iconv: *
- ext-json: *
- ext-pdo: *
- ext-posix: *
- ext-simplexml: *
- ext-zip: *
- dflydev/dot-access-data: ^3.0
- fakerphp/faker: ~1.16
- laminas/laminas-filter: ^2.12
- n98/junit-xml: ~1.0
- pbergman/tree-helper: ^1.0
- psr/container: ~1.1.2
- psy/psysh: ~0.7
- rmccue/requests: ^2.0
- symfony/console: ^5.4
- symfony/event-dispatcher: ^5.4
- symfony/finder: ^5.4
- symfony/process: ^5.4
- symfony/validator: ^5.4
- symfony/yaml: ^5.4
- twig/twig: ~3.4
Requires (Dev)
- bamarni/symfony-console-autocomplete: ^1.2.0
- captainhook/captainhook: ^5.3
- friendsofphp/php-cs-fixer: ^3.8
- mikey179/vfsstream: ^1.6
- phpstan/phpstan: ^1.8.5
- phpunit/phpunit: ^9
- roave/security-advisories: dev-master
- seld/phar-utils: ~1.2.0
Suggests
- n98/magerun2-dist: Deploys only the phar file. Use this to prevent dependency conflicts.
- dev-develop
- 7.4.0
- 7.3.1
- 7.3.0
- 7.2.0
- 7.1.0
- 7.0.3
- 7.0.2
- 7.0.1
- 7.0.0
- 6.1.1
- 6.1.0
- 6.0.1
- 6.0.0
- 5.2.0
- 5.1.0
- 5.0.2
- 5.0.1
- 5.0.0
- 4.9.1
- 4.9.0
- 4.8.0
- 4.7.0
- 4.6.1
- 4.6.0
- 4.5.0
- 4.4.0
- 4.3.0
- 4.2.0
- 4.1.0
- 4.0.4
- 4.0.3
- 4.0.2
- 4.0.1
- 4.0.0
- 3.2.0
- 3.1.0
- 3.0.10
- 3.0.9
- 3.0.8
- 3.0.7
- 3.0.6
- 3.0.5
- 3.0.4
- 3.0.3
- 3.0.2
- 3.0.1
- 3.0.0
- 2.3.3
- 2.3.2
- 2.3.1
- 2.3.0
- 2.2.0
- 2.1.2
- 2.1.1
- 2.1.0
- 2.0.0
- 1.6.0
- 1.5.0
- 1.4.0
- 1.3.3
- 1.3.2
- 1.3.1
- 1.3.0
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.17
- 1.1.16
- 1.1.15
- 1.1.14
- 1.1.13
- 1.1.12
- 1.1.11
- 1.1.10
- 1.1.9
- 1.1.8
- 1.1.7
- 1.1.6
- 1.1.5
- 1.1.4
- 1.1.3
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.0
- dev-dependabot/composer/phpstan/phpstan-1.12.4
- dev-master
This package is auto-updated.
Last update: 2024-09-20 07:30:31 UTC
README
n98 magerun CLI 工具提供了一些方便的工具,用于从命令行与 Magento / Mage-OS / Adobe Commerce 交互。
适用于 Magento 开发者、系统管理员和 DevOps 的瑞士军刀
构建状态
开发在 develop 分支进行。
此软件仅在 Magento 2 下运行。
如果您使用 Magento 1,请使用另一个稳定版本(https://github.com/netz98/n98-magerun)。
兼容性
工具将自动测试多个 PHP 版本。它目前在各种 Linux 发行版和 Mac OS X 上运行。Microsoft Windows 不完全受支持(一些命令如 db:dump
或 install
被排除)。
我们支持的 Magento 版本如下
- 2.4.x 开源/ Commerce
- 2.3.x 开源/ Commerce(最后一个兼容的 n98-magerun2 版本是 v5.2.0)
- 2.2.x 开源/ Commerce(最后一个兼容的 n98-magerun2 版本是 v3.2.0)
我们支持的 PHP 版本如下
- PHP 8.3
- PHP 8.2
- PHP 8.1
- PHP 7.4
- PHP 7.3(最后一个兼容版本是 v6.1.1)
- PHP 7.2(最后一个兼容版本是 v4.7.0)
安装
有三种方式可以安装这些工具
下载并安装 Phar 文件
从 文件服务器 下载最新的稳定 n98-magerun phar 文件
wget https://files.magerun.net/n98-magerun2.phar
或者如果您想使用 Curl
curl -O https://files.magerun.net/n98-magerun2.phar
通过比较网站上的 SHA256 校验和来验证下载
shasum -a256 n98-magerun2.phar
还可以自动验证
curl -sS -O https://files.magerun.net/n98-magerun2-latest.phar
curl -sS -o n98-magerun2-latest.phar.sha256 https://files.magerun.net/sha256.php?file=n98-magerun2-latest.phar
shasum -a 256 -c n98-magerun2-latest.phar.sha256
如果它显示与网站上的相同的校验和,则您已成功下载了文件。
现在您可以设置 phar 文件为可执行
chmod +x ./n98-magerun2.phar
基本安装现在完成,您可以验证它
./n98-magerun2.phar --version
命令应该可以成功执行,并显示 N98-Magerun 的版本号,例如
n98-magerun2 版本 4.8.0 by valantic CEC
您现在已成功安装 Magerun!您可以进一步定制安装,例如将其安装为系统范围内的,并启用自动完成 - 请继续阅读有关这些和其他功能的信息。
如果您想将命令系统化,可以将其复制到 /usr/local/bin
。
sudo cp ./n98-magerun2.phar /usr/local/bin/
通过 Composer 安装 Phar
我们提供特殊的 dist 包,可通过 Composer 安装 phar 文件。有关详细信息,请参阅 https://packagist.org.cn/packages/n98/magerun2-dist。dist 包的主要优势是不存在包依赖关系。
通过 Composer 安装(源代码包)- 不推荐
通过 Composer 安装 不推荐,因为它无法与所有项目和 Magento 核心依赖项兼容。请使用 Phar 文件而不是 Composer 版本。我们无法再为所有 Magento 版本提供兼容性。
更新
有一个 self-update
命令可用。这仅适用于 phar 分发。
./n98-magerun2.phar self-update [--dry-run]
使用 --dry-run
选项可以下载并测试 phar 文件而不替换旧文件。
自动完成
Magerun 的自动完成文件位于 res/autocompletion
文件夹中。以下是一些关于特定文件(Bash)的更多信息,还有其他文件(例如 Fish、Zsh)。
Bash
bash自动补全是预先生成的,所有命令及其对应选项都可在按Tab键时显示。要获取选项的补全,请输入两个短横线(--
)然后按Tab键。
要安装补全文件,将n98-magerun2.phar.bash
复制到您的bash兼容目录文件夹中进行自动补全。
在我的Ubuntu系统中,可以使用以下命令完成此操作
sudo cp res/autocompletion/bash/n98-magerun2.phar.bash /etc/bash_completion.d/
具体文件夹可以通过pkg-config获得
pkg-config --variable=compatdir bash-completion
有关详细信息,请参阅bash-completions FAQ:https://github.com/scop/bash-completion#faq
使用说明 / 命令
注意还有更多命令可供使用,请在此处查阅。请使用列表命令查看所有命令。
所有命令都试图检测当前的Magento根目录。如果您有多个Magento安装,您必须更改您的工作目录到您首选的安装。
您可以通过以下方式列出所有可用的命令
n98-magerun2.phar list
如果您未在系统范围内安装.phar文件,可以使用PHP CLI解释器调用它
php n98-magerun2.phar list
全局配置参数
调用核心Magento命令
该工具可以用来运行核心Magento命令。我们提供了一个内部代理命令,通过bin/magento
调用原始Magento命令。所有选项和参数都传递给原始命令。
如果您不想使用代理命令,可以使用--skip-core-commands
选项来禁用它。
代理命令的一个主要优点是,您可以运行任何命令而无需更改工作目录到Magento根目录或指定bin/magento
的路径,如果您的当前工作目录在Magento安装内。
如果您不在Magento根目录外,可以通过指定--root-dir
选项来运行任何命令。这对于有多个Magento安装或在某种自动化中使用时非常有用。
对于核心命令,我们过滤环境变量以避免启用xdebug扩展时出现的问题。
在浏览器中打开商店
n98-magerun2.phar open-browser [store]
客户信息
通过电子邮件地址加载基本客户信息。
n98-magerun2.phar customer:info [email] [website]
创建客户
为商店前端创建新的客户/用户。
n98-magerun2.phar customer:create [email] [password] [firstname] [lastname] [website]
示例
n98-magerun2.phar customer:create foo@example.com password123 John Doe base
您可以添加任意数量的自定义字段,例如
n98-magerun2.phar customer:create foo@example.com passworD123 John Doe base taxvat DE12345678 prefix Mrs.
列出客户
列出客户。输出限制为1000(可以通过覆盖配置来更改)。如果提供了搜索参数,则客户将被过滤(搜索名,姓和电子邮件)。
n98-magerun2.phar customer:list [--format[="..."]] [search]
更改客户密码
n98-magerun2.phar customer:change-password [email] [password] [website]
- 如果有多于一个网站可用,则必须提供网站参数。
为Webapi创建客户令牌
n98-magerun2.phar customer:token:create <email>
删除客户
n98-magerun2.phar customer:delete [-f|--force] [-a|--all] [-r|--range] [--fuzzy] [--id=ID] [--website=ID] [--email=EMAIL] [--firstname=STRING] [--lastname=STRING]
示例
n98-magerun2.phar customer:delete --id 1 # Will delete customer with Id 1 n98-magerun2.phar customer:delete --fuzzy --email=test # Will delete all customers with email like "%test%" n98-magerun2.phar customer:delete --all # Will delete all customers n98-magerun2.phar customer:delete --range # Will prompt for start and end Ids for batch deletion
通过给定id或网站id和电子邮件的组合、网站id和姓和名来删除客户。此外,您可以删除一组客户id或删除所有客户。
添加客户地址
n98-magerun2.phar customer:add-address [email] [website] [--firstname=STRING] [--lastname=STRING] [--street=STRING] [--city=STRING] [--country=STRING] [--postcode=STRING] [--telephone=STRING] [--default-billing] [--default-shipping]
示例
n98-magerun2.phar customer:add-address foo@example.com base --firstname="John" --lastname="Doe" --street="Pariser Platz" --city="Berlin" --country="DE" --postcode="10117" --telephone="1234567890" # add address of brandenburger tor to customer with email "foo@example.com" in website "base" n98-magerun2.phar customer:add-address foo@example.com base --firstname="John" --lastname="Doe" --street="Pariser Platz" --city="Berlin" --country="DE" --postcode="10117" --telephone="1234567890" --default-billing --default-shipping # add address of brandenburger tor to customer with email "foo@example.com" in website "base" as default billing and shipping
通过电子邮件和网站定义给定的客户添加客户地址
Magento安装程序
- 如果尚未安装,则下载Composer。
- 下载Magento 2。
- 如果不存在,则尝试创建数据库。
- 安装Magento示例数据。
- 启动Magento安装程序
- 在.htaccess文件中设置重写基本路径
交互式安装程序
n98-magerun2.phar install
无人值守安装
n98-magerun2.phar install [--magentoVersion[="..."]] [--magentoVersionByName[="..."]] [--installationFolder[="..."]] [--dbHost[="..."]] [--dbUser[="..."]] [--dbPass[="..."]] [--dbName[="..."]] [--installSampleData[="..."]] [--useDefaultConfigParams[="..."]] [--baseUrl[="..."]] [--replaceHtaccessFile[="..."]]
无人值守安装的示例:Magento CE 2.0.0.0 dev beta 1
n98-magerun2.phar install --dbHost="localhost" --dbUser="mydbuser" --dbPass="mysecret" --dbName="magentodb" --installSampleData=yes --useDefaultConfigParams=yes --magentoVersionByName="magento-ce-2.0.0.0-dev-beta1" --installationFolder="magento2" --baseUrl="http://magento2.localdomain/"
此外,使用--noDownload
选项,您可以在给定的数据库上安装已存储在--installationFolder
中的Magento工作副本。
Magento系统信息
提供有关版本、配置的缓存后端、数据量或已安装软件包的信息。
n98-magerun2.phar sys:info
选项
Magento商店
列出所有商店视图。
n98-magerun2.phar sys:store:list [--format[="..."]]
Magento 网站列表
列出所有网站。
n98-magerun2.phar sys:website:list [--format[="..."]]
列出计划任务
列出在 crontab.xml 文件中定义的所有计划任务。
n98-magerun2.phar sys:cron:list [--format[="..."]]
运行计划任务
通过代码运行计划任务。
n98-magerun2.phar sys:cron:run [job]
如果没有传递 job
参数,您可以从列表中选择一个任务。查看操作:[http://www.youtube.com/watch?v=QkzkLgrfNaM](http://www.youtube.com/watch?v=QkzkLgrfNaM) 如果存在选项计划,则不会启动 cron,而是在 Magento crontab 中立即安排。
终止正在运行的任务
n98-magerun2.phar sys:cron:kill [--timeout <seconds>] [job_code]
如果没有指定任务,将显示所有正在运行的任务的交互式选择。只有在进程在 n98-magerun2 相同的机器上运行时,才能终止任务。
进程终止的默认超时时间为 5 秒。
计划任务历史记录
带有状态的最后执行的计划任务。
n98-magerun2.phar sys:cron:history [--format[="..."]] [--timezone[="..."]]
创建 app/etc/env.php
交互式创建 env 文件。也可以更新现有文件。要更新单个值,可以使用命令 config:env:set
。
n98-magerun2.phar config:env:create
在 env.php 文件中设置单个值
通过提供密钥和可选值在 env.php 中设置单个值。如果没有设置值,则命令将保存空字符串作为默认值。
config.php 中的子数组可以通过在数组中添加 "." 字符来指定。
n98-magerun2.phar config:env:set <key> [<value>]
您还可以选择提供 json 文本参数作为值,使用可选的 --input-format=json
标志。这将允许您添加不是字符串的其他标量类型的值。
示例
n98-magerun2.phar config:env:set backend.frontName mybackend n98-magerun2.phar config:env:set crypt.key bb5b0075303a9bb8e3d210a971674367 n98-magerun2.phar config:env:set session.redis.host 192.168.1.1 n98-magerun2.phar config:env:set 'x-frame-options' '*' n98-magerun2.phar config:env:set --input-format=json queue.consumers_wait_for_messages 0 n98-magerun2.phar config:env:set --input-format=json directories.document_root_is_pub true n98-magerun2.phar config:env:set --input-format=json cron_consumers_runner.consumers '["some.consumer", "some.other.consumer"]'
从 env.php 文件中删除密钥
通过提供密钥从 env.php 文件中删除配置。
config.php 中的子数组可以通过在数组中添加 "." 字符来指定。
n98-magerun2.phar config:env:delete <key>
示例
n98-magerun2.phar config:env:delete system n98-magerun2.phar config:env:delete cache.frontend.default.backend n98-magerun2.phar config:env:delete cache.frontend.default.backend_options
显示 env.php 设置
n98-magerun2.phar config:env:show [options] [<key>]
如果没有传递密钥,则将显示文件的全部内容作为表格。
示例
n98-magerun2.phar config:env:show # whole content
n98-magerun2.phar config:env:show backend.frontName
n98-magerun2.phar config:env:show --format=json
n98-magerun2.phar config:env:show --format=csv
n98-magerun2.phar config:env:show --format=xml
配置搜索
在商店配置元数据(标签)中搜索。输出是一个包含配置项 id、类型和名称的表格。
类型可以是以下之一
- 部分
- 组
- 字段
n98-magerun2.phar config:search [--format[="..."]] <search>
设置商店配置
n98-magerun2.phar config:store:set [--scope[="..."]] [--scope-id[="..."]] [--encrypt] path value
参数
- path - 配置路径值 配置值
选项
获取商店配置
n98-magerun2.phar config:store:get [--scope="..."] [--scope-id="..."] [--decrypt] [--format[="..."]] [path]
参数
- path - 配置路径
选项
帮助
如果没有设置路径,将列出所有可用的配置项。路径可能包含通配符 (*
)
示例
n98-magerun2.phar config:store:get web/* --magerun-script
删除商店配置
n98-magerun2.phar config:store:delete [--scope[="..."]] [--scope-id[="..."]] [--all] path
参数
- path - 配置路径
选项
显示 ACL 树
n98-magerun2.phar config:data:acl
帮助
将 acl.xml 数据打印为表格
打印依赖注入配置数据
n98-magerun2.phar config:data:di <type>
参数
- type - 类型(类)
选项
打印 MView 配置
打印所有合并的 mview.xml 文件的数据。
n98-magerun2.phar config:data:mview [options]
选项
打印索引器配置
打印所有合并的 indexer.xml 文件的数据。
n98-magerun2.phar config:data:indexer [options]
选项
列出 Magento 缓存状态
n98-magerun2.phar cache:list
清理 Magento 缓存
清理过期的缓存条目。
如果您只想清理一个缓存类型
n98-magerun2.phar cache:clean [code]
如果您想一次性清理多个缓存类型
n98-magerun2.phar cache:clean [code] [code] ...
如果您想删除所有缓存条目,请使用 cache:flush
运行 cache:list
命令以查看所有代码。
删除所有缓存条目
n98-magerun2.phar cache:flush [code]
请注意,cache:flush
清除缓存后端,因此同一后端中的其他缓存类型也将被清除。
通过 ID 删除条目
该命令不会检查缓存 ID 是否存在。如果您想检查缓存 ID 是否存在,请使用带 --strict
选项的 cache:remove:id
命令。
n98-magerun2.phar cache:remove:id [options[--strict] <id>
列出 Magento 缓存
n98-magerun2.phar cache:list [--format[="..."]]
禁用 Magento 缓存
n98-magerun2.phar cache:disable [code]
如果没有指定代码,则将禁用所有缓存类型。运行 cache:list
命令以查看所有代码。
启用 Magento 缓存
n98-magerun2.phar cache:enable [code]
缓存报告
此命令可让您调查您的缓存中存储的内容。它打印出一个包含缓存 ID 的表格。
n98-magerun2.phar cache:report [-t|--tags] [-m|--mtime] [--filter-id[="..."]] [--filter-tag[="..."]] [--fpc]
缓存查看
通过 ID 打印存储的缓存条目。
n98-magerun2.phar cache:view [--unserialize] [--decrypt] [--fpc] id
如果值已序列化,则可以使用 --unserialize
选项强制进行美观的输出。某些条目是加密的,可以使用 --decrypt
选项解密。该命令默认使用核心缓存。如果应使用 FPC 缓存,则可以使用 --fpc
选项。
刷新目录图像缓存
删除预生成的目录图像并触发 clean_catalog_images_cache_after
事件,该事件应使完整页面缓存无效。
n98-magerun2.phar cache:catalog:image:flush
如果没有指定代码,将启用所有缓存类型。运行cache:list
命令查看所有代码。
列出管理员用户
n98-magerun2.phar admin:user:list [--format[="..."]]
更改管理员用户密码
n98-magerun2.phar admin:user:change-password [username] [password]
删除管理员用户
n98-magerun2.phar admin:user:delete [email|username] [-f]
ID可以是电子邮件或用户名。命令将首先尝试通过用户名查找用户,如果找不到,将尝试通过电子邮件查找。如果省略ID,您将被提示输入。如果省略强制参数-f
,您将被提示确认。
为Webapi创建管理员令牌
n98-magerun2.phar admin:token:create <username>
运行原始数据库查询
n98-magerun2.phar db:query <sql-query>
示例
n98-magerun2.phar db:query "select * from store"
打开MySQL控制台
n98-magerun2.phar db:console [options]
选项
转储数据库
使用mysqldump
转储配置的Magento数据库。
- 需要MySQL CLI工具
参数
- filename - 转储文件名
选项
n98-magerun2.phar db:dump
只有mysqldump命令
n98-magerun2.phar db:dump --only-command [filename]
或直接输出到stdout
n98-magerun2.phar db:dump --stdout
使用压缩(需要安装gzip CLI工具)
n98-magerun2.phar db:dump --compression="gzip"
剥离数据库转储
转储您的数据库并排除一些表。这在开发或测试环境中很有用,在这些环境中,您可能希望提供一个受限的数据库。
使用空格分隔要剥离的每个表。您可以在表名中使用通配符如*
和?
来剥离多个表。此外,您还可以指定以@符号开始的预定义表组。
示例:dataflow_batch_export unimportant_module_* @log
n98-magerun2.phar db:dump --strip="@stripped"
可用表组
导入数据库
- 需要MySQL CLI工具
参数
- filename - 转储文件名
选项
n98-magerun2.phar db:import
修复空授权表
如果您使用带有剥离选项和@admin
组的db:dump
运行,则authorization_rule和authorization_role表将为空。这将阻止创建管理员用户。
您可以通过运行命令重新创建默认条目
n98-magerun2.phar db:add-default-authorization-entries
如果您正在使用db:import
命令导入剥离的SQL转储,则将隐式调用此命令。
清除静态视图文件
n98-magerun2.phar dev:asset:clear [--theme="..."]
选项
清除所有主题的资产
n98-magerun2.phar dev:asset:clear
仅清除特定主题的资产
n98-magerun2.phar dev:asset:clear --theme=Magento/luma
列出主题
n98-magerun2.phar dev:theme:list
创建模块骨架
创建一个空模块并将其注册到当前Magento商店。
n98-magerun2.phar dev:module:create [-m|--minimal] [--add-blocks] [--add-helpers] [--add-models] [--add-setup] [--add-all] [-e|--enable] [--modman] [--add-readme] [--add-composer] [--add-strict-types] [--author-name [AUTHOR-NAME]] [--author-email [AUTHOR-EMAIL]] [--description [DESCRIPTION]] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [--root-dir [ROOT-DIR]] [--skip-config] [--skip-root-check] [--skip-core-commands [SKIP-CORE-COMMANDS]] [--skip-magento-compatibility-check] [--] <command> <vendorNamespace> <moduleName>
检测模块中的Composer依赖关系
可以扫描一个或多个模块的源代码以查找依赖关系。
n98-magerun2.phar dev:module:detect-composer-dependencies [--only-missing] <directory>
--only-missing
选项将过滤输出,以便仅列出缺失的依赖关系。
为Magento Admin启用/禁用内联翻译功能
n98-magerun2.phar dev:translate:admin [--on] [--off]
为商店前端启用/禁用内联翻译功能
n98-magerun2.phar dev:translate:shop [--on] [--off] <store>
设置翻译(保存在翻译表中)
n98-magerun2.phar dev:translate:set <string> <translate> [<store>]
导出内联翻译
n98-magerun2.phar dev:translate:export [--store=<storecode>] <locale> <filename>
列出模块
n98-magerun2.phar dev:module:list [--vendor [VENDOR]] [-e|--only-enabled] [-d|--only-disabled] [--format [FORMAT]]
列出所有已安装的模块。如果设置了--vendor
选项,则仅列出给定供应商的模块。如果设置了--only-enabled
选项,则仅列出启用的模块。如果设置了--only-disabled
选项,则仅列出禁用的模块。格式可以是csv
、json
、xml
或yaml
。
加密
使用Magentos加密密钥加密给定的字符串
n98-magerun2.phar dev:encrypt <string>
使用Magentos加密密钥解密给定的字符串
n98-magerun2.phar dev:decrypt <encrypted string>
列出观察者
n98-magerun2.phar dev:module:observer:list [--sort] <event> [<area>
列出路由
n98-magerun2.phar route:list [-a|--area] [-m|--module] [-f|--format]
EAV属性
查看特定属性的详细信息
n98-magerun2.phar eav:attribute:view [--format[="..."]] entityType attributeCode
生成礼品卡池
生成新的礼品卡池。
n98-magerun2.phar giftcard:pool:generate
创建礼品卡
n98-magerun2.phar giftcard:create [--website[="..."]] [--expires[="..."]] [amount]
您可以指定网站ID或使用默认值。您还可以使用--expires
选项可选地添加礼品卡的过期日期。日期应采用YYYY-MM-DD
格式。
查看礼品卡信息
n98-magerun2.phar giftcard:info [--format[="..."]] [code]
删除礼品卡
n98-magerun2.phar giftcard:remove [code]
比较设置版本
比较模块版本与setup_module
表中保存的设置版本,如果找到不匹配,则显示版本不匹配。
n98-magerun2.phar sys:setup:compare-versions [--ignore-data] [--log-junit="..."] [--format[="..."]]
- 如果设置了带有
--log-junit
选项的文件名,则工具将生成XML文件,而不会输出到stdout。
更改设置版本
更改模块的版本。此命令在您想再次运行升级脚本以进行调试时很有用。或者,您可能需要手动更改数据库中的行。
n98-magerun2.phar sys:setup:change-version module version
降级设置版本
如果需要,将数据库中的版本降级到模块XML文件中的模块版本。这在开发期间在模块版本更改之间切换分支时很有用。
n98-magerun2.phar sys:setup:downgrade-versions
转储媒体文件夹
创建一个包含媒体文件夹内容的ZIP存档。
n98-magerun2.phar media:dump [--strip] [filename]
集成(Webapi访问令牌)
有四个命令用于创建、显示、列出、删除集成(访问令牌)。这些命令对于开发者来说非常有用。
列出所有现有集成
n98-magerun2.phar integration:list
创建一个新的集成
n98-magerun2.phar integration:create [options] [--] <name> [<email> [<endpoint>]]
选项
如果没有定义ACL资源,新集成令牌将被创建为具有完全访问权限。
如果您不希望这样,请使用--resource
选项提供ACL资源的列表。
示例
n98-magerun2.phar integration:create "My new integration 10" foo@example.com https://example.com -r Magento_Catalog::catalog_inventory -r Magento_Backend::system_other_settings
要查看所有可用的ACL资源,请运行命令config:data:acl
。
显示现有集成的信息
n98-magerun2.phar integration:show --format[=FORMAT] <name_or_id> [key]
示例(仅打印访问密钥)
n98-magerun2.phar integration:show 1 "Access Key"
删除集成
n98-magerun2.phar integration:delete <name_or_id>
Github
(实验性)命令
拉取请求
获取关于Github拉取请求的信息。如果没有通过---repository
(-r)选项定义Github仓库,将使用默认的Magento 2 Github仓库magento/magento2
。对于Mage-OS仓库,我们提供了快捷选项--mage-os
。
如果命令在没有任何选项的情况下执行,它将显示有关PR的信息。
# Magento 2 Open Source n98-magerun2.phar github:pr:patch <pr-number> # Mage-OS n98-magerun2.phar github:pr:patch --mage-os <pr-number>
从PR创建补丁文件
n98-magerun2.phar github:pr:patch --patch <pr-number>
目前该命令不处理magento2-base、magento2-ee-base和b2b基础包的文件。
仅列出原始差异
n98-magerun2.phar github:pr:patch --diff <pr-number>
交互式开发控制台
以初始化的Magento Admin-Store打开PHP交互式shell。
n98-magerun2.phar dev:console [--area=AREA] <arg>
可选地,可以定义一个区域代码。如果提供,将加载该区域的配置(di.xml、翻译)。
可能的区域代码有
adminhtml
crontab
frontend
graphql
webapi_xml
webapi_rest
变量$di
通过Magento\Framework\ObjectManagerInterface
实例提供,允许创建对象实例。
变量$dh
提供方便的调试函数。键入$dh->
并按Tab键以获取列表。
示例
n98-magerun2 dev:console --area=adminhtml // show name of category 123 in default store $dh->debugCategoryById(123)['name']; // show name of product id 123 $dh->debugProductById(123)['name'];
交互式控制台作为REPL工作。可以输入任何PHP代码。代码将被立即执行。交互式控制台还提供了许多内置的s命令。
可以向交互式控制台添加初始命令。命令应由分号分隔。可以将PHP代码与嵌入的交互式控制台命令混合使用。
示例
n98-magerun2.phar dev:console "$a = 1; call cache:flush; ls;"
交互式控制台带有可扩展的代码生成工具,可以创建例如模块、cli命令、控制器、块、助手等。
控制台可以处于模块上下文中,这允许您为所选模块生成代码。
有状态控制台的基本思想是由Jacques Bodin-Hullin在这个伟大的工具Installer中开发的。
n98-magerun脚本
从脚本文件中运行多个命令。
n98-magerun2.phar script [-d|--define[="..."]] [--stop-on-error] [filename]
示例
# Set multiple config config:store:set "web/cookie/cookie_domain" example.com # Set with multiline values with `\n` config:store:set "general/store_information/address" "First line\nSecond line\nThird line" # This is a comment cache:flush
可选地,您可以使用Unix管道。
echo "cache:flush" | n98-magerun2.phar script
n98-magerun2.phar script < filename
甚至可以创建可执行脚本
创建文件test.magerun
并将其设置为可执行chmod +x test.magerun
#!/usr/bin/env n98-magerun2.phar script config:store:set "web/cookie/cookie_domain" example.com cache:flush # Run a shell script with "!" as first char ! ls -l # Register your own variable (only key = value currently supported) ${my.var}=bar # Let magerun ask for variable value - add a question mark ${my.var}=? ! echo ${my.var} # Use resolved variables from n98-magerun in shell commands ! ls -l ${magento.root}/code/local
预定义变量
可以使用“--define (-d)”选项将变量传递到脚本中。
示例
n98-magerun2.phar script -d foo=bar filename
# This will register the variable ${foo} with value bar.
可以通过传递多个选项来定义多个值。
可以在脚本中使用环境变量,方法是在变量前使用env.
前缀。
示例
!echo "My current working directory is: ${env.PWD}" !echo "Path: ${env.PATH}"
切换CMS块状态
根据给定的块标识符切换CMS块的状态。
n98-magerun2.phar cms:block:toggle [blockId]
更改管理员用户状态
根据选项更改管理员用户,如果没有提供选项,则命令将切换状态。
n98-magerun2.phar admin:user:change-status [user] [--activate] [--deactivate]
注意:用户可能存在与不同用户电子邮件匹配的用户名。在这种情况下,将更改第一个匹配的用户。
为特定商店添加销售序列
如果数据库中缺少销售序列,将在数据库中创建销售序列,这将重新创建配置文件。
n98-magerun2.phar sales:sequence:add [store]
如果省略了商店,它将为所有商店运行。
注意:可能已存在一个序列,在这种情况下不会发生任何事,只会创建缺失的表。
移除指定店铺的销售序列
从数据库中移除销售序列,警告:您不能撤销此操作,请确保您有数据库备份。
n98-magerun2.phar sales:sequence:remove [store]
如果省略了店铺,它将为所有店铺运行。当提供了no-interaction
选项时,它将立即运行而无需任何交互。否则,它将提醒您并询问您是否了解自己在做什么,并询问您要运行的每个店铺。
注意:
脚本仓库
您可以在仓库中组织您的脚本。只需将脚本放在文件夹/usr/local/share/n98-magerun2/scripts
或您的家目录中的文件夹<HOME>/.n98-magerun2/scripts
即可。
脚本必须有.magerun文件扩展名。
之后,您可以使用script:repo:list命令列出所有脚本。脚本的第1行可以包含注释(以#开头的行),它将显示为描述。
n98-magerun2.phar script:repo:list [--format[="..."]]
如果您想从仓库中执行脚本,可以使用script:repo:run命令。
n98-magerun2.phar script:repo:run [-d|--define[="..."]] [--stop-on-error] [script]
脚本参数是可选的。如果您没有指定任何参数,您可以从列表中选择一个。
Composer重新部署基本包
在 Magento 更新后如果文件缺失,可能是因为新文件被添加到了 Magento 基本包中的文件映射。composer:redeploy-base-packages
命令可以解决这个问题。
n98-magerun2.phar composer:redeploy-base-packages