Drupal ENV detector. Detects env related configuration and sets them for you. Helps with moving sites from environment to another. Aims also to generalize your env configuration.
Also sets configuration per environment type. e.g. for development or production. Everything can still be overridden in your project.
You should just focus on your project specific configuration.
Require omen in your composer.json:
composer require druidfi/omenAnd then use this as your sites/default/settings.php:
<?php
// Use druidfi/omen
extract(Druidfi\Omen\Reader::get(get_defined_vars()));Or print out all configuration (aka debug):
<?php
// Print out detected configuration by druidfi/omen
Druidfi\Omen\Reader::show(get_defined_vars());See the whole example here.
- Amazee.io Lagoon
- DDEV Local
- Lando
- Pantheon - Work in Progress
- Tugboat
- Wodby
- Loading of setting files and service configurations
- Database connection
- Trusted host pattern(s)
- File paths (public, private, temp)
- Hash salt
- Contrib module settings (which are affected by env)
With APP_ENV you can force a running configuration. E.g. you can run with test configuration on dev environment.
This means that e.g. the database credentials do not change but caching settings do change.
Values: dev, test or prod (default: prod)
Drupal configuration can be overridden using ENV variables.
| Variable | ENV override | Default value |
|---|---|---|
$databases['default']['default']['database'] |
DRUPAL_DB_NAME |
✖️ |
$databases['default']['default']['driver'] |
DRUPAL_DB_DRIVER |
'mysql' |
$databases['default']['default']['host'] |
DRUPAL_DB_HOST |
✖️ |
$databases['default']['default']['password'] |
DRUPAL_DB_PASS |
✖️ |
$databases['default']['default']['port'] |
DRUPAL_DB_PORT |
3306 |
$databases['default']['default']['username'] |
DRUPAL_DB_USER |
✖️ |
$settings['config_sync_directory'] |
DRUPAL_CONFIG_SYNC_DIRECTORY |
'conf/cmi' |
$settings['file_public_path'] |
DRUPAL_FILE_PUBLIC_PATH |
'sites/default/files' |
$settings['file_private_path'] |
DRUPAL_FILE_PRIVATE_PATH |
FALSE |
$settings['file_temp_path'] |
DRUPAL_FILE_TEMP_PATH |
'/tmp' |
$settings['hash_salt'] |
DRUPAL_HASH_SALT |
'0000000000000000' |
✖️ Detected or required
See src/Defaults.php for values.
See current default values by environment:
| Variable | Development | Testing | Production |
|---|---|---|---|
$config['system.logging']['error_level'] |
'all' |
'hide' |
'hide' |
$config['system.performance']['cache']['page']['max_age'] |
0 |
900 |
900 |
$config['system.performance']['css']['preprocess'] |
0 |
1 |
1 |
$config['system.performance']['js']['preprocess'] |
0 |
1 |
1 |
$settings['skip_permissions_hardening'] |
TRUE |
FALSE |
FALSE |
Same for all environments:
$settings['config_exclude_modules']=['devel','stage_file_proxy','upgrade_status']$settings['config_sync_directory']='conf/cmi'
Add support for:
- Detect e.g. Solr, Redis and Varnish configuration where available
- Other dev tools and hosting environments
- Default values for some contrib modules
Druids interpreted the waves of the ocean or read clouds for mundane or important omens. So reading clouds is
basically what druidfi/omen is doing. Your local clouds too.
This project can be found from the Packagist: https://packagist.org/packages/druidfi/omen