Bir komut satırı PHP script XDebug profilcisini tetiklemek nasıl?

4 Cevap php

XDebug HTTP üzerinden bir komut çağrılırken GET veya POST parametre "XDEBUG_PROFILE" geçirerek profilleme etkinleştirmek sağlar yapılandırma yönergesi "xdebug.profiler_enable_trigger" sunuyor. Her zaman PHP yapılandırmasını değiştirmeden komut TÜM ama sadece bir kaç özel durumlar için için profilleme istemiyorsanız bu kullanışlıdır.

Komut satırı PHP programları için aynı davranışı elde etmek için bir yolu var mı? Ben bir komut satırı argümanı olarak "XDEBUG_PROFILE" geçmek için denedim ama işe yaramadı.

Genel olarak, profilleme komut satırı PHP iyi çalışıyor, ama ben bir tarayıcı ve HTTP sunucusu ile aynı çağrı başına-esnekliğe sahip istiyorum.

Herhangi bir öneriniz?

4 Cevap

Sen -d bayrağı ile INI ayarları iletebilirsiniz: php -d xdebug.profiler_enable=On script.php.

Ben bu Ubuntu / NetBeans üzerinde çalışma var:

  • / etc/php5/cli/php.ini içine / etc/php5/apache2/php.ini dosyadan xdebug yapılandırma satır kopyalayarak
  • hata ayıklama oturumu adı ile bir ortam değişkeni (hata ayıklama başlattığınızda sayfa NetBeans'i url sorgu dizesi bu alabilirsiniz başlattı) komut: ihracat XDEBUG_CONFIG = "idekey = netbeans-xdebug"

O zaman sadece netbeans hata ayıklama başlayan ve komut satırında "php myscript.php" yapmanın bir durumda bulunuyor.

Xdebug Remote Debugging sayfada anlatıldığı gibi, profil aynı zamanda bir "profile_enable = 1" yönergesi inluding tarafından XDEBUG_CONFIG çevre değişkeni ile etkin olabilir:

XDEBUG_CONFIG="profiler_enable=1" php ...

with PhpStorm on remote webserver i use this command:

XDEBUG_CONFIG="idekey=PHPSTORM" PHP_IDE_CONFIG="serverName=server_name" php -dxdebug.remote_host=`echo $SSH_CLIENT | cut -d "=" -f 2 | awk '{print $1}'` myscript.php

burada server_name PhpStorm proje conifuguration sunucunun adını açılımı