2015-09-14 6 views
14

私の開発環境でXdebugに問題があります。Xdebugがクラス静的プロパティへのアクセスを中断します

FROM library/php:5.5-apache 

RUN apt-get -qqy update && apt-get -qqy install \ 
       libpq-dev \ 
       libmcrypt-dev \ 
       libxml2-dev \ 
       ssl-cert \ 
       vim \ 
       git \ 
       mc \ 
     && rm -r /var/lib/apt/lists/* 

# compile and add xdebug 
RUN pecl install xdebug \ 
    && echo "zend_extension=xdebug.so" >> "/usr/local/etc/php/conf.d/xdebug.ini" 

# configure apache and vhosts 
RUN a2enmod rewrite ssl \ 
     && a2ensite 000-default default-ssl 

ENV APACHE_RUN_USER www-data 
ENV APACHE_RUN_GROUP www-data 
ENV APACHE_LOG_DIR /var/log/apache2 
ENV APACHE_RUN_DIR /var/run/apache2 
ENV APACHE_PID_FILE /var/run/apache2/apache2.pid 
ENV APACHE_LOCK_DIR /var/lock/apache2 

CMD ["apache2-foreground"] 

Xdebugの設定:

[xdebug] 
xdebug.remote_enable=1 
xdebug.remote_autostart=0 
xdebug.remote_host=172.17.42.1 
xdebug.remote_port=9000 

すべてが良い動作しますが、1つの事。

<?php 
class A { 
    static private $a; 

    static public function init() { 
     self::$a = 123; 
    } 
} 

A::init(); 

私はラインにself::$a = 123;またはステップにブレークポイントを設定した場合、私が手::

Fatal error: Access to undeclared static property: A::$a 

私はその行にステップしない場合は、デバッグセッションはなしで続けてコードをデバッグするとき何か問題がある。

どういうところが間違っていますか?

+0

PHP 5.4.43とXdebug v2.3.2で同じ問題が発生しました。 ドッカーを経由してビルドします。 – shark555

+0

私はさまざまなxdebugバージョン、異なるデバッグクライアントを使用しました。私はpecl経由でxdebugをインストールし、自分でコンパイルしました。問題は公式のドッカーの画像のどこかにあるはずです –

+0

どのIDEを使用していますか? – bishop

答えて

1

私はそれがどこかのXDebugのバグだと思う - これらのバグは

一方あなたはxdebug_break()を使用して問題を回避でソートすることができるかもしれないのレポートを表示例外をスローした行の直後に関数を呼び出し、そこからデバッグを続行します。私は例外がスローされた後に行にブレークポイントを設定しようとしましたが、ブレークポイントが例外をスローするのを止めるのに十分ではないことがわかりました。

ない完璧なソリューションうまくいけば、これらのバグはすぐに

0

唯一の公式PHP5画像で再現することができます説明エラー固定されます。 PHP 7イメージはうまく動作し、jessieやubuntuからカスタムPHP5 FPMイメージを構築するときにもエラーは発生しません。

関連する問題