Adobe Commerce Developer Professional study materials
Adobe Commerce Developer Professional study resources

Adobe Commerce Developer Professional: Adobe Commerce Setup and Configuration

Adobe Commerce Developer Professional · Work through your exam, one topic at a time.

All guide sections

Adobe Commerce Setup and Configuration

Setup and configuration questions test whether you know which file or command controls which behavior. Installation and upgrades run through bin/magento setup:install, setup:upgrade, setup:di:compile, setup:static-content:deploy, and cache:flush. In production mode, setup:di:compile is mandatory after changing di.xml, and static content must be deployed per locale and theme. A frequent trap: setup:upgrade runs module InstallData/UpgradeData and schema patches, but does NOT compile DI or deploy static assets.

Configuration lives in app/etc/env.php (environment-specific: database credentials, cache backend, crypt key) and app/etc/config.php (module enable/disable list and some system config). System configuration values are stored in the core_config_data table with path, scope, scope_id. Scope hierarchy is default → website → store view, and the most specific scope wins. Code reads values via ScopeConfigInterface::getValue($path, $scopeType, $scopeCode). Deployment configuration (app/etc/config.php) can lock sensitive values so they cannot be edited in admin.

Modes matter: developer (no compilation, verbose errors), default, and production (compiled DI, static deployed, errors logged). bin/magento deploy:mode:set production triggers compilation and static deployment automatically.

CLI commands are declared in etc/di.xml under Magento\Framework\Console\CommandList; cron jobs in etc/crontab.xml and cron groups in etc/cron_groups.xml.

Worked example: To add a new admin configuration field, create etc/adminhtml/system.xml with a group and field, a config.xml default value, and an ACL resource in etc/acl.xml. The value is then read with getValue('section/group/field'). If a question says the field does not appear, suspect a missing ACL resource or a misconfigured system.xml section reference.