magento / community-features

Magento Features Development is an Initiative to Allows Community Memebers Join to Development of Magento Features
46 stars 18 forks source link

Add argument on app:config:dump to skip dumping all system settings. #41

Closed magento-engcom-team closed 6 years ago

magento-engcom-team commented 6 years ago

Description

Add option config-types on app:config:dump to skip dumping all system settings. That allows to dump only scope, theme for easier maintainability.

Fixed Issues

When using app:config:dump in real projects, we normally do not want to dump all thousands core_config_data settings into config files. That makes the files difficult to read and maintain. Imho dumping scopes and themes makes a lot of sense. However, the system settings should be kept small and simple. They must be progressively added according to project needs.

On the other hand, the main purpose of config.php is to propagate configuration that must be same in all environments, specially for PRD and Build systems. These settings should be just a few, like for example css and js configuration needed for setup:static-content:deploy. Of course others settings might be needed depending on the project but all the others are better managed into core_config_data table or by using setup scripts.

This new option config-types makes possible to dump scopes and themes automatically (needed for build system) while managing system settings manually using config:set --lock-config as requested in PR:

It also fixes this issue:

Manual testing scenarios

Example of workflow on a real project:

  1. When creating the project we dump all settings with app:config:dump scopes themes

  2. That creates the needed settings for scopes and themes but skips system core config data

  3. We also add shared settings needed for PRD and Build environments

    bin/magento config:set --lock-config dev/js/merge_files 1
    bin/magento config:set --lock-config dev/css/merge_css_files 1
    bin/magento config:set --lock-config dev/static/sign 1
  4. As project evolves, we add a new stores and themes, so we need to update our config.php settings.

    bin/magento app:config:dump  scopes themes
  5. At the same time, if we ever need to share system settings on all environments, we can use the command bin/magento config:set --lock-config without needing to dump all hundreds of settings into the config.php

Contribution checklist

Original Report: https://github.com/magento/magento2/pull/12410 by @jalogut