15.如何使用控制台命令

后端开发2019-12-20

Magento 2 开发内容目录

本文研究一下 Magento 系统提供的一些命令。Magento 通过 bin/magento 提供了很多命令,刚开始感觉会有些复杂,接下来我们就仔细了解一下:

当运行如下命令

php bin/magento

bin/magento

就会输出所有可用的命令列表,当括我们自定义的命令:

Usage:
 command [options] [arguments]
 
Options:
 --help (-h)           Display this help message
 --quiet (-q)          Do not output any message
 --verbose (-v|vv|vvv) Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
 --version (-V)        Display this application version
 --ansi                Force ANSI output
 --no-ansi             Disable ANSI output
 --no-interaction (-n) Do not ask any interactive question
 
Available commands:
 help                                      Displays help for a command
 list                                      Lists commands
admin
 admin:user:create                         Creates an administrator
 admin:user:unlock                         Unlock Admin Account
cache
 cache:clean                               Cleans cache type(s)
 cache:disable                             Disables cache type(s)
 cache:enable                              Enables cache type(s)
 cache:flush                               Flushes cache storage used by cache type(s)
 cache:status                              Checks cache status
catalog
 catalog:images:resize                     Creates resized product images
 catalog:product:attributes:cleanup        Removes unused product attributes.
cron
 cron:run                                  Runs jobs by schedule
customer
 customer:hash:upgrade                     Upgrade customer's hash according to the latest algorithm
deploy
 deploy:mode:set                           Set application mode.
 deploy:mode:show                          Displays current application mode.
dev
 dev:source-theme:deploy                   Collects and publishes source files for theme.
 dev:tests:run                             Runs tests
 dev:urn-catalog:generate                  Generates the catalog of URNs to *.xsd mappings for the IDE to highlight xml.
 dev:xml:convert                           Converts XML file using XSL style sheets
i18n
 i18n:collect-phrases                      Discovers phrases in the codebase
 i18n:pack                                 Saves language package
 i18n:uninstall                            Uninstalls language packages
indexer
 indexer:info                              Shows allowed Indexers
 indexer:reindex                           Reindexes Data
 indexer:reset                             Resets indexer status to invalid
 indexer:set-mode                          Sets index mode type
 indexer:show-mode                         Shows Index Mode
 indexer:status                            Shows status of Indexer
info
 info:adminuri                             Displays the Magento Admin URI
 info:backups:list                         Prints list of available backup files
 info:currency:list                        Displays the list of available currencies
 info:dependencies:show-framework          Shows number of dependencies on Magento framework
 info:dependencies:show-modules            Shows number of dependencies between modules
 info:dependencies:show-modules-circular   Shows number of circular dependencies between modules
 info:language:list                        Displays the list of available language locales
 info:timezone:list                        Displays the list of available timezones
maintenance
 maintenance:allow-ips                     Sets maintenance mode exempt IPs
 maintenance:disable                       Disables maintenance mode
 maintenance:enable                        Enables maintenance mode
 maintenance:status                        Displays maintenance mode status
module
 module:disable                            Disables specified modules
 module:enable                             Enables specified modules
 module:status                             Displays status of modules
 module:uninstall                          Uninstalls modules installed by composer
sampledata
 sampledata:deploy                         Deploy sample data modules
 sampledata:remove                         Remove all sample data packages from composer.json
 sampledata:reset                          Reset all sample data modules for re-installation
setup
 setup:backup                              Takes backup of Magento Application code base, media and database
 setup:config:set                          Creates or modifies the deployment configuration
 setup:cron:run                            Runs cron job scheduled for setup application
 setup:db-data:upgrade                     Installs and upgrades data in the DB
 setup:db-schema:upgrade                   Installs and upgrades the DB schema
 setup:db:status                           Checks if DB schema or data requires upgrade
 setup:di:compile                          Generates DI configuration and all missing classes that can be auto-generated
 setup:install                             Installs the Magento application
 setup:performance:generate-fixtures       Generates fixtures
 setup:rollback                            Rolls back Magento Application codebase, media and database
 setup:static-content:deploy               Deploys static view files
 setup:store-config:set                    Installs the store configuration
 setup:uninstall                           Uninstalls the Magento application
 setup:upgrade                             Upgrades the Magento application, DB data, and schema
theme
 theme:uninstall                           Uninstalls theme

命令行分类

可以将上面的列表分为以下类别:

  • 缓存 Cache
  • 索引器 Indexer
  • 定时任务 Cron Job
  • 代码编译器 Code Compiler
  • 设置系统模式 Set the magento mode
  • i18n 国际化翻译 i18n translation
  • 运行单元测试 unit test
  • 维护模式 Maintenance
  • 模块管理 Module management
  • 安装 Setup: Install, upgrde, uninstall, backup, rollback
  • 主题 theme
  • 部署 deployment

接下来看下每个类别的一些示例:

缓存命令

查看缓存状态

php bin/magento cache:status

输出:

                    config: 1
                    layout: 1
                block_html: 1
               collections: 1
                    db_ddl: 1
                       eav: 1
                 full_page: 1
                 translate: 1
        config_integration: 1
    config_integration_api: 1
         config_webservice: 1

清除缓存:

php bin/magento cache:clean

输出:

$ php bin/magento cache:clean
Cleaned cache types:
config
layout
block_html
collections
reflection
db_ddl
eav
customer_notification
full_page
config_integration
config_integration_api
translate
config_webservice

如何刷新缓存:

php bin/magento cache:flush

如何启用或停用缓存:

php bin/magento cache:enable
php bin/magento cache:disable
 
# 加参数
magento cache:enable [type] ... [type]
magento cache:disable [type] ... [type]
 
# 示例 停用页面缓存
magento cache:disable full_page

索引器命令

查看索引状态

php bin/magento indexer:info

输出:

design_config_grid                       Design Config Grid
customer_grid                            Customer Grid
catalog_category_product                 Category Products
catalog_product_category                 Product Categories
catalog_product_price                    Product Price
catalog_product_attribute                Product EAV
catalogsearch_fulltext                   Catalog Search
cataloginventory_stock                   Stock
catalogrule_rule                         Catalog Rule Product
catalogrule_product                      Catalog Product Rule

重建索引:

php bin/magento indexer:reindex

重置索引

php bin/magento indexer:reset

显示索引模式

php bin/magento indexer:show-mode

输出:

$ php bin/magento indexer:show-mode
 
Design Config Grid:                                Update on Save
Customer Grid:                                     Update on Save
Category Products:                                 Update on Save
Product Categories:                                Update on Save
Product Price:                                     Update on Save
Product EAV:                                       Update on Save
Catalog Search:                                    Update on Save
Stock:                                             Update on Save
Catalog Rule Product:                              Update on Save
Catalog Product Rule:                              Update on Save

设置索引模式类型

php bin/magento indexer:set-mode {realtime|schedule} [indexer]
 
# 示例:
magento indexer:set-mode scedule catalog_category_product catalog_product_category

部署命令

语法:

php bin/magento setup:static-content:deploy <lang> ... <lang> [--dry-run]

发布静态内容

php bin/magento setup:static-content:deploy

输出:

$ php bin/magento setup:static-content:deploy
 
Requested languages: en_US
=== frontend -> Magento/blank -> en_US ===
...........................................

发布静态内容默认使用语言: en_EN

如果要使用其它语言如简体中文: zh_Hans_CN

运行

php bin/magento setup:static-content:deploy zh_Hans_CN

使用命令获取后台 URI 路径

可以不用查看 etc/env.php 文件也能知道后台路径:

php bin/magento info:adminuri

使用命令管理维护模式

# 开启维护模式
php bin/magento maintenance:enable
 
# 关闭
php bin/magento maintenance:disable

设置允许指定 IP 访问维护模式的网站

php bin/magento maintenance:allow-ips
 
# 示例:
php bin/magento maintenance:allow-ips 168.168.168.168

设置系统开发者模式或线上模式

有 3 种模式定义在 Magneto\Framework\App\State: default, developer, production

显示当前系统模式

php bin/magento deploy:mode:show
 
# 默认输出 default

切换到开发者模式:

php bin/magento deploy:mode:set developer

恭喜你老铁!你的店铺现在就是开发者模式了。开始享受写代码的快感吧 :)