From 5081ef9962f32e4922fd1a9f60d05389d7c2fb44 Mon Sep 17 00:00:00 2001 From: jurgenhaas <juergen@paragon-es.de> Date: Tue, 2 May 2017 13:06:05 +0200 Subject: [PATCH] Add PHP xdebug for command line too --- src/Handler.php | 25 +++++++++++++++++++++++++ templates/docker-compose.yml.twig | 4 ++++ 2 files changed, 29 insertions(+) diff --git a/src/Handler.php b/src/Handler.php index 9f7efdf..4f1bf15 100644 --- a/src/Handler.php +++ b/src/Handler.php @@ -222,6 +222,9 @@ class Handler { $extra = $this->composer->getPackage()->getExtra() + ['docker4drupal' => []]; $options = $extra['docker4drupal'] + [ 'projectname' => str_replace([' ', '-', '_', '.'], '', basename(getcwd())), + 'docker0' => [ + 'ip' => $this->getLocalIpv4('docker0'), + ], 'drupal' => [ 'version' => '8', ], @@ -259,4 +262,26 @@ class Handler { } } + private function getLocalIpv4($interface = NULL) { + $out = explode(PHP_EOL, shell_exec('LC_ALL=C /sbin/ifconfig')); + $local_addrs = array(); + $ifname = 'unknown'; + foreach ($out as $str) { + $matches = array(); + if (preg_match('/^([a-z0-9]+)(:\d{1,2})?(\s)+Link/', $str, $matches)) { + $ifname = $matches[1]; + if(strlen($matches[2])>0) { + $ifname .= $matches[2]; + } + } elseif (preg_match('/inet addr:((?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:[.](?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3})\s/', $str, $matches)) { + $local_addrs[$ifname] = $matches[1]; + } + } + + if (!isset($interface)) { + return $local_addrs; + } + return isset($local_addrs[$interface]) ? $local_addrs[$interface] : '127.0.0.1'; + } + } diff --git a/templates/docker-compose.yml.twig b/templates/docker-compose.yml.twig index d6ae7cb..d508628 100644 --- a/templates/docker-compose.yml.twig +++ b/templates/docker-compose.yml.twig @@ -16,6 +16,10 @@ services: {% if php.xdebug %} PHP_XDEBUG: 1 PHP_XDEBUG_DEFAULT_ENABLE: 1 + PHP_XDEBUG_REMOTE_AUTOSTART: 1 + PHP_XDEBUG_REMOTE_HOST: {{ docker0.ip }} + PHP_IDE_CONFIG: serverName=Docker + PHP_XDEBUG_REMOTE_CONNECT_BACK: 1 {% endif %} volumes: - ./:/var/www/html -- GitLab