This project is not covered by Drupal’s security advisory policy.
Environment Context provides a robust way to detect and act on the current runtime environment (e.g. development, staging, production) in Drupal. It integrates deeply with Drupal’s context, condition, and caching systems.
✅ Features
- Detects the current environment via:
settings.php- Environment variables (
DRUPAL_ENVIRONMENT) - Pluggable event-based detection
- Provides a Context Provider for environment
- Adds a Condition Plugin to use environment in:
- Block visibility
- Layout Builder
- Other context-aware systems
- Defines an
environmentTyped Data plugin for strong typing - Adds an
environmentCache Context to vary content by environment - Easily extendable: other modules can register environments or override detection
⚙️ How it works
The module dispatches events to determine the current environment and all known environments. This makes detection and registration extensible without hardcoding logic in one place.
It provides:
- A context provider plugin:
EnvironmentContext - A condition plugin:
EnvironmentCondition - A typed data plugin:
Environment - A cache context plugin:
environment
You can use these in block visibility, service injections, or even configuration splits.
📦 Installation
composer require drupal/environment_context drush en environment_context
This module has no UI — it works behind the scenes and via developer APIs.
🚀 Example Usage
Get the current environment in a service:
$env = \Drupal::service('environment_context.context.environment')->getCurrentEnvironment();React to specific environments:
if ($env === 'production') { // Do something only on production }
Define environments via event listener:
$event->addEnvironment('production', ['label' => 'Production']);Add an environment condition to a block:
- Use the "Current environment" condition in block visibility settings
- Select one or more matching environments
📎 Requirements
- Drupal 10 or 11
- No external dependencies
🧩 Related Projects
- Config Split — often used alongside to manage config per environment
- Environment Indicator — UI decoration for environments
- Sites — Supports environment based site settings
💬 Feedback & Contributions
Contributions, feature requests, and bug reports are welcome via the issue queue.
Project information
- Project categories: Developer tools
15 sites report using this module
- Created by hydra on , updated
This project is not covered by the security advisory policy.
Use at your own risk! It may have publicly disclosed vulnerabilities.

