github.com/ddev/ddev@v1.23.2-0.20240519125000-d824ffe36ff3/pkg/ddevapp/global_dotddev_assets/commands/web/xdebug (about)

     1  #!/bin/bash
     2  
     3  ## #ddev-generated
     4  ## Description: Enable or disable xdebug
     5  ## Usage: xdebug on|off|enable|disable|true|false|toggle|status
     6  ## Example: "ddev xdebug" (default is "on"), "ddev xdebug off", "ddev xdebug on", "ddev xdebug toggle", "ddev xdebug status"
     7  ## Execraw: false
     8  ## Flags: []
     9  ## AutocompleteTerms: ["on","off","enable","disable","toggle","status"]
    10  
    11  if [ $# -eq 0 ] ; then
    12    enable_xdebug
    13    exit
    14  fi
    15  
    16  xdebug_version=$(php --version | awk '/Xdebug v/ {print $3}')
    17  
    18  get_xdebug_status() {
    19      case ${xdebug_version} in
    20      v3*)
    21        status=$(php -r 'echo ini_get("xdebug.mode");' 2>/dev/null)
    22        if [[ "${status}" =~ .*"debug".* ]]; then
    23          echo "1"
    24        else
    25          echo "0"
    26        fi
    27        ;;
    28      v2*)
    29        echo $(php -r 'echo ini_get("xdebug.remote_enable");')
    30        ;;
    31      *)
    32        echo "0"
    33        ;;
    34      esac
    35  } 
    36  
    37  case $1 in
    38    on|true|enable)
    39      enable_xdebug
    40      ;;
    41    off|false|disable)
    42      disable_xdebug
    43      ;;
    44    toggle)
    45      status=$(get_xdebug_status)
    46      if [ "${status}" = "1" ]; then
    47        disable_xdebug
    48      else
    49        enable_xdebug
    50      fi
    51      ;;
    52    status)
    53      status=$(get_xdebug_status)
    54      if [ "${status}" = "1" ]; then
    55        result="xdebug enabled"
    56      else
    57        result="xdebug disabled"
    58      fi
    59      echo $result
    60      ;;
    61    *)
    62      echo "Invalid argument: $1"
    63      ;;
    64  esac