PhpStorm'da Xdebug Kurulumu

Debugging yazılım geliştiren herhangi birisi için en önemli şeylerden birisi. Hatasız kod yazabilen insan olmadığı için de debugging'in önemi artıyor. Yine aynı şekilde debugging yapmadan hatasını kolay kolay bulabilen de pek bulunmuyor. PHP bir scripting dil olduğu için de IDE'nizin debuggin özelliği yoksa, hataları dosyayı çalıştırmaya çalıştığınızda görürsünüz. Bunun yanında da çoğu zaman objelerin içeriğini görmeniz veya kontrol etmeniz gerekir ve bunun için de klasik bir var_dump çağrısı yaparsınız. Ancak bu var_dump çağrısı sonucu elde ettiğiniz çıktı stilsiz ve düzensiz olur, hatta içinde  kaybolursunuz. İşte burada devreye Xdebug giriyor. Xdebug ile çıktılarınızı daha net bir şekilde görebilirsiniz. Öncelikle Xdebug'ı Ubuntu'da terminalden basit apt-get çağrısı ile yükleyebilirsiniz, ancak etkisini görebilmek için de Apache servisini de yeniden başlatmak gerek. Hepsi için yazmanız gereken:

sudo apt-get install php5-xdebug
sudo service apache2 restart

Bunu yaptıktan sonra artık Xdebug'ı kullanabilirsiniz. Xdebug'ın var_dump özelliğini kullanmak için yapmanız gereken fonksiyon çağrısı da gayet basit.

xdebug_var_dump()

Asıl olarak kullanmanız gereken en önemli kısım ise bir IDE vasıtasıyla olacaktır. Eğer IDE olarak PHPStorm kullanmıyorsanız, en kısa sürede PHPStorm kullanmaya başlamanızı öneririm. Ben de PHPStorm kullandığım için, Xdebug'ı PHPStorm ile nasıl kullanabileceğinizi anlatacağım.

Xdebug'ı başarıyla yüklediyseniz, öncelikle php.ini dosyanıza aşağıdaki kodu eklemeniz gerekiyor. php.ini dosyasının yer aldığı yeri de belirtecek olursam, /etc/php5/apache2 dizininde yer alıyor. Aşağıdaki kodu ekledikten sonra tekrardan Apache'yi baştan başlatmanız gerek.

xdebug.remote_enable=1 

Terminalden de:

sudo service apache2 restart

Daha sonraPHPStorm içerisinde, File -> Settings ->Deployment kısmından yeşil artı işaretine basarak projenizin çalıştığı sunucunun yerini ekliyoruz.

deployment-xdebug

Bu aşamadan sonra, Server ile Deploymen kısmını birleştirmemiz gerek. Bunun için de, tekrar aynı yerden, tam path'i yazacak olursam, File -> Settings -> PHP -> Servers kısmından tekrar yeşil artıya tıklayıp serverı aşağıdaki resimdeki gibi ekliyoruz ve Validate'e basıyoruz. Validate'e bastıktan sonra herhangi bir hata almamanız gerek, alırsanız da düzeltmeniz lazım.

phpstorm-xdebug-servers

Son aşamada ise geriye PHPStorm'un Debuggin kısmına bunu eklememiz gerek. Bunun için de yine tüm path'i yazacak olursam, File -> Settings -> PHP -> Debug kısmından Debug Port'unun 9000 olduğunu ve Can accept external connections checkbox'ının check edilmiş olduğunu kontrol etmeniz gerek. Bunları da kontrol ettikten sonra en altta yazan Use debugger bookmarklets to initiate browsing from your favorite browser'a basıyoruz. Açılan yeni pencerede, Xdebug kısmından generate edip Debugging'i başlatıp sonlandırabiliriz. Bu linkleri favorilerinize eklerseniz de tekrar tekrar aramanıza gerek kalmaz. Ayrıca Xdebugger için firefox veya chrome için yardımcı eklentileri de kurabilirsiniz.

phpstorm-xdebug

Bu aşamadan sonra sağ üstteki telefon işaretine basarak Start Listen for PHP Debug Connections diyerek Xdebug'ı kullanarak debug işlemini gerçekleştirebilirsiniz.

phpstorm-xdebug-telefon

Burada bir ayrıntıyı belirteyim, eğer debug etmeye çalışırken Cannot find PHPUnit in include path (.:/usr/share/php:/usr/share/pear) hatası alırsanız, bilin ki PHPUnit'i yüklemeniz gerek. Bunun için terminalden phpunit'i yüklemeniz gerek:

sudo apt-get install phpunit

Eğer bunu da yapmanız rağmen hata alırsanız, /etc/php5/cli/ içerisinde, php.ini dosyasına path eklemeniz gerekebilir.

include_path=".:/usr/share/php"

Bu kısımdan sonra artık bir problem kalmamış olmalı. Debug etmek istediğiniz satırın yanına tıklayarak (kırmızı nokta çıkar) debug etmek istediğiniz satırları belirtebilirsiniz. Daha sonra firefox veya chrome'da indirmiş olduğunuz plugini de aktif ederek, debug ettiğiniz dosyayı açın. Dosyayı açtığınızda PHPStorm size aşağıdaki gibi bir uyarı verecek. Bunu Accept ederseniz de, PHPStorm üzerinden XDebug'ı kullanabildiğinizi görebileceksiniz.

xdebug-php-goster-uyarisi

Bir problem yaşarsanız alttan belirtebilirsiniz. En son görmeniz gereken kısım alttaki gibi olmalıdır.

xdebug-phpstorm-final