Drupal is a registered trademark of Dries Buytaert
Release: Leaflet 10.4.11 Minor update available for module leaflet (10.4.11). Release: Session Inspector 1.0.8 Minor update available for module session_inspector (1.0.8). Release: Migrate QA 2.0.4 Minor update available for module migrate_qa (2.0.4). Release: CKEditor Description List 3.0.0 Major update available for module ckeditor_descriptionlist (3.0.0). Release: FlowDrop 2.4.0 Minor update available for module flowdrop (2.4.0). Release: JWT Token Refresh 1.0.4 Minor update available for module jwt_token_refresh (1.0.4). Release: ConReg 1.0.0-beta1 First beta version released for module conreg (1.0.0-beta1). Release: AI Image Studio 1.0.0-beta8 New beta version released for module ai_image_studio (1.0.0-beta8). Usage Milestone: Statistics Counter Module statistics_counter crossed 1,000 active installs. Module Revived: Decoupled Router 2.0.7 Module decoupled_router updated after 11 months of inactivity (2.0.7).

This module allows you to conditionally enable or disable Drupal services based on the current environment, helping to use different service implementations for different environments without adding conditional logic to your code.

This module allows you to enable or disable Drupal services based on the current environment, inspired by Symfony's per-environment service configuration.

This is useful when you need different service implementations per environment — for example, using a real API client in production and a logger or mock in development/staging, without conditional logic in your code.

Features

  • #[ConditionalServices\Attribute\WhenEnv] — register a service only when DRUPAL_ENV matches a given value
  • #[ConditionalServices\Attribute\WhenNotEnv] — register a service only when DRUPAL_ENV does NOT match a given value
  • Works with any service tagged with kernel.event_subscriber, logger, or custom tags via tags attribute parameter

Requirements

Set the DRUPAL_ENV environment variable to any string identifying your environment (e.g. production, development, staging).

Examples

The module includes a conditional_services_examples submodule with sample controllers and services demonstrating both attributes in action.

Activity

Tracked releases
1
Tracked since
Jun 2026
Latest release
1 month ago
Releases (12 mo)
1 ▲ from 0
Maintenance
Active

Releases

Version Type Release date
1.0.0 Stable Jun 25, 2026