Date post: | 15-Jul-2015 |
Category: |
Software |
Upload: | francisco-jose-seva-mora |
View: | 426 times |
Download: | 2 times |
Xdebug with PHPUnitIn Drupal 8
About me
Intro: XDebug
Depuración en PHP:● print_r(), var_dump(), …● FirePHP● Kint , Krumo, Ladybug● phpdbg incluido ya en 5.6
Intro: XDebug
● Debugging and profiling PHP extension● Show log trace information● Allow step by step debugging
More info
Intro: XDebug - My experience
I feel secure on my own!!! butIt’s not the holy grail
Xdebug installation + configuration:PHP extension
+System configuration
+IDE configuration
+Browser configuration
Xdebug installation: PHP extension
sudo apt-get install php5-xdebug
http://xdebug.org/docs/install
Xdebug installation: System configuration
● zend_extension="/usr/lib/php5/20121212/xdebug.so"● xdebug.remote_enable=1● xdebug.remote_host= IDE host● xdebug.remote_port="9000"● xdebug.profiler_enable=1● xdebug.profiler_output_dir="/tmp"● xdebug.idekey="drupal8"
/etc/php5/apache2/php.ini AND/OR /etc/php5/cli/php.ini
How do we check it?
Web: echo phpinfo();
Xdebug installation: How do we check it?Console (cli): php -v & php -i | grep remote
IDE configuration
● Set Xdebug in PhpStorm● Add a Php remote debug / Php Unit instance
in PhpStorm● Set session id (ide key)
IDE configuration: Set XDebug
● Configure Php debug● Configure server
IDE configuration: Debug instance
Open Debug panel pressing F9 and select Edit configuration
Add new PHP Remote Debug instance
Set the ide key (session id)and server
Browser configuration
● The IDE needs an Id to start the debug● The browser provides the Id (session_id)● Chrome / Firefox extension to provide Id
○ Xdebug helper
Use case : Debug code (I)● Drupal 8 installed in local● XDebug installed in local● PhpStorm configured with an instance
● Add breakpoint in code● Run debug mode● Navigate to stop in the breakpoint
Environment configuration:
Use case:
This is my day by day use of XDebug.
Use case : Debug code (II)● Drupal 8 installed in remote environment (vagrant)● XDebug installed in remote environment (vagrant)● PhpStorm configured with a sync code to remote env.
● Add breakpoint in code● Run debug mode● Navigate to stop in the breakpoint
Environment configuration:
Use case:
This is @LuisGonRod day by day use of XDebug.
Use case : Debug code (III)Question: What if @LuisGonRod and me want debug in the same remote environment?
http://derickrethans.nl/debugging-with-multiple-users.html
Use case : Debug code (III)
Use case : Debug tests (I)● Drupal 8 installed in local● XDebug installed in local● PhpStorm configured with an instance
● Activate module Testing● Run test Drupal\node\Tests\PageEditTest
Environment configuration:
Running test by using browser
Use case● Add breakpoint in test code● Run debug mode● Run test and wait to stop in breakpoint
Sometimes never stop...at least for me
Use case : Debug tests (II)● Drupal 8 installed in local● XDebug installed in local● PhpStorm configured with an instance
● Activate module Testing● Run test using
○ run-tests.sh script○ drush test-run
Environment configuration:
Running test by using Php cli
Use case : Debug tests - run-tests.sh (III)
configuring the script using PhpStorm it works
XDEBUG_CONFIG="idekey=drupal8" sudo php core/scripts/run-tests.sh --php /usr/bin/php --url http://local.drupal --class "Drupal\node\Tests\PageEditTest"
For me it’s not working, right now :(
Use case : Debug tests - run-tests.sh (IV)● Go to debug configuration (F9)● Add a Php Script instance● Configure it
○ File: path to run-tests.sh○ Arguments: The run-tests parameters○ Environment variables: XDEBUG_CONFIG with idekey
Use case : Debug tests - drush test-run (V)drush test-run --uri= local.drupal Drupal\node\Tests\PageEditTest
...And what about PHPUnit?We can debug PHPUnit tests using Phpstorm adding a PHPUnit or PHPUnit on server instance
what about PHPUnit and php cli?We can run test through runt-tests.sh script or
php scripts/run-tests.sh --php /usr/bin/php PHPUnit
And now...what?
Do you know why we have moustache?
● Configuraciones especiales de Xdebug● Si lanzamos los test por consola no tenemos
la cookie del navegador.
Movember and Drupal community
If you can, please, donate.you won’t be the only one, maybe in that room you find some moustaches in @jose_lakatos @jsbalsera @penyaskito and @gloobhttp://es.movember.com/en/team/1674337http://es.movember.com/mospace/10983485