XDebug menawarkan direktif konfigurasi "xdebug.profiler_enable_trigger" yang memungkinkan untuk mengaktifkan profil dengan mengirimkan parameter GET atau POST "XDEBUG_PROFILE" saat memanggil skrip melalui HTTP. Ini berguna jika Anda tidak ingin membuat profil untuk SEMUA skrip Anda tetapi hanya untuk beberapa kasus khusus tanpa selalu mengubah konfigurasi PHP Anda.
Apakah ada cara untuk mencapai perilaku yang sama untuk program PHP baris perintah? Saya mencoba meneruskan "XDEBUG_PROFILE" sebagai argumen baris perintah tapi tidak berhasil.
Secara umum, membuat profil baris perintah PHP berfungsi dengan baik, tetapi saya ingin memiliki fleksibilitas per panggilan yang sama dengan browser dan server HTTP.
Ada saran?
php
configuration
command-line
profiling
xdebug
selfawaresoup
sumber
sumber
Jawaban:
Anda dapat melewati pengaturan INI dengan
-d
bendera:php -d xdebug.profiler_enable=On script.php
.sumber
alias phpp="php -d xdebug.profiler_enable=1"
. Dengan begitu ketika Anda tidak ingin membuat profil, gunakan sajaphp
dan kapan Anda menggunakannyaphpp
.alias xphp="php -d xdebug.profiler_enable=On -d xdebug.profiler_output_dir=."
. Itu selalu menyimpan hasil debug di direktori kerja Anda saat ini.phpp.cmd
file, berisiphp -d xdebug.profiler_enable=On %*
kemudian Anda bisa jalankanphpp <args>
.Saya menjalankan ini di Ubuntu / Netbeans dengan:
Maka itu hanyalah kasus memulai debugging di netbeans dan melakukan "php myscript.php" di baris perintah.
sumber
dengan PhpStorm di server web jarak jauh saya menggunakan perintah ini:
di mana
server_name
singkatan nama server dalam konifugurasi proyek PhpStormsumber
alias xphp="XDEBUG_CONFIG="idekey=PHPSTORM" PHP_IDE_CONFIG="serverName=example.com" php -d memory_limit=1G -d xdebug.remote_host=
echo $ SSH_CLIENT | cut -d \ "= \" -f 2 | awk '{print $ 1}'"
jadi ketika saya ingin men-debug saya menggunakan xphp bukan phpSeperti yang dijelaskan pada halaman Xdebug Remote Debugging , pembuatan profil juga dapat diaktifkan melalui
XDEBUG_CONFIG
variabel lingkungan dengan memasukkan direktif "profile_enable = 1":sumber
Mirip, tetapi proses yang berbeda untuk membuatnya bekerja dengan Netbeans saat mengembangkan pada VM.
Perlu melewati bendera yang diaktifkan jarak jauh, bendera mulai otomatis, bendera ide, dan nama host jarak jauh Anda.
sumber
Saya membuat skrip shell untuk menangani debugging klien.
nama skrip: phpdebug
Saya menempatkan skrip ini di
/usr/bin
dan memberikannya mengeksekusi izin.Script mengambil argumen yang diteruskan ke phpdebug dan memanggil php dengan argumen xdebug dan menambahkan argumen yang dilewatkan ke dalam skrip shell, $ * di bagian akhir.
sumber
XDEBUG_CONFIG
variabel lingkungan. Hanya itu danxdebug.remote_host
pengaturannya berhasil.Dalam PhpStorm 7 menggunakan WAMP saya mendapatkan ini berfungsi dengan menyalin pengaturan xdebug saya sudah berfungsi dari C: \ wamp \ bin \ apache \ apache2.2.22 \ bin \ php.ini ke bagian xdebug dari C: \ wamp \ bin \ php \ phpX.YZ \ php.ini. Lalu saya menjalankan skrip saya seperti ini:
Ini bahkan berfungsi untuk debugging skrip artisan laravel
sumber
Dokumentasi dari Jetbrains
Untuk memulai skrip dengan debugging menggunakan sakelar baris perintah PHP Atur variabel lingkungan yang akan memberi tahu XDebug untuk terhubung ke IDE:
Windows / MacOS / Linux
Di sini idekey harus memiliki nilai acak.
Luncurkan PHP dengan opsi baris perintah berikut:
Anda dapat menggunakan 10.0.2.2 sebagai ganti 127.0.0.1 dengan Vagrant (lihat pertanyaan SO terkait).
sumber