Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. XdebugHandler.php

function XdebugHandler::setXdebugDetails

Sets static properties $xdebugActive, $xdebugVersion and $xdebugMode

2 calls to XdebugHandler::setXdebugDetails()
XdebugHandler::isXdebugActive in vendor/composer/xdebug-handler/src/XdebugHandler.php
Returns whether Xdebug is loaded and active
XdebugHandler::__construct in vendor/composer/xdebug-handler/src/XdebugHandler.php
Constructor

File

vendor/composer/xdebug-handler/src/XdebugHandler.php, line 679

Class

XdebugHandler
@author John Stevenson <john-stevenson@blueyonder.co.uk>

Namespace

Composer\XdebugHandler

Code

private static function setXdebugDetails() : void {
    if (self::$xdebugActive !== null) {
        return;
    }
    self::$xdebugActive = false;
    if (!extension_loaded('xdebug')) {
        return;
    }
    $version = phpversion('xdebug');
    self::$xdebugVersion = $version !== false ? $version : 'unknown';
    if (version_compare(self::$xdebugVersion, '3.1', '>=')) {
        $modes = xdebug_info('mode');
        self::$xdebugMode = count($modes) === 0 ? 'off' : implode(',', $modes);
        self::$xdebugActive = self::$xdebugMode !== 'off';
        return;
    }
    // See if xdebug.mode is supported in this version
    $iniMode = ini_get('xdebug.mode');
    if ($iniMode === false) {
        self::$xdebugActive = true;
        return;
    }
    // Environment value wins but cannot be empty
    $envMode = (string) getenv('XDEBUG_MODE');
    if ($envMode !== '') {
        self::$xdebugMode = $envMode;
    }
    else {
        self::$xdebugMode = $iniMode !== '' ? $iniMode : 'off';
    }
    // An empty comma-separated list is treated as mode 'off'
    if (Preg::isMatch('/^,+$/', str_replace(' ', '', self::$xdebugMode))) {
        self::$xdebugMode = 'off';
    }
    self::$xdebugActive = self::$xdebugMode !== 'off';
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal