Skip to main content
drupalreleases

Use direct release data with your AI assistant.

Learn more

Environment Context

No security coverage Under active development 24 sites

This module allows Drupal sites to detect and react to the current runtime environment, such as development, staging, or production. It integrates with Drupal's systems for context, conditions, and caching, enabling features like varying block visibility or caching based on the detected environment. Extensible by design, it can be easily configured and extended to manage different site environments.

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 environment Typed Data plugin for strong typing
  • Adds an environment Cache 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

πŸ’¬ Feedback & Contributions

Contributions, feature requests, and bug reports are welcome via the issue queue.

Ask your assistant about Environment Context

Check compatibility with your Drupal and PHP version, maintenance and security coverage, from current release data. How it works

Depends on

Dependencies of the latest stable release

No dependencies recorded for this project.

Required by

Tracked projects that depend on this one

No tracked projects depend on this one yet.

Activity

Tracked releases
3
Tracked since
Jun 2025
Latest release
1 month ago
Releases (12 mo)
2 ▲ from 1
Maintenance
Active

Release Timeline

Releases

Version Type Core PHP Release date
1.0.0-rc2 Pre-release 10–11 Aug 17, 2026
1.0.0-rc1 Pre-release 10–11 Apr 7, 2026
1.x-dev Dev 10–11 Jun 10, 2025