(Php)Storming WordPress A remote debugging experience Introduction

/ Andrea Fuggetta

/ Senior software engineer at Ndevr, Inc. - https://ndevr.io/

/ Some of the projects I worked on: About Us

/ Since 2015

/ Distributed

/ 50% Located in NY/NJ Metro

/ Average experience over 15 years Outline

/ Tools and software / Setting up Xdebug / Setting up PhpStorm / Setting up your terminal / Let’s code! – Debugging case scenarios: / WordPress theme / WP-CLI application / PHPUnit test / References / Q&A Tools and software

/ PhpStorm / Google Chrome w/ Xdebug helper / Terminal / Vagrant / Xdebug / PHPUnit / WP-CLI Setting up Xdebug / Info on https://xdebug.org/docs/install

/ Installation on Mac OSX via Homebrew:

# brew install -xdebug

/ Installation on via apt-get:

# sudo apt-get install -xdebug

/ Php.ini:

Add: zend_extension="/path-to/xdebug.so" [Xdebug] xdebug.remote_enable=1 xdebug.remote_port=“9000” Debugging

/ Breakpoint: line break where an application suspends execution allowing you to examine data / Step-over: runs code in current line and moves to next code statement / Step-into: moves into functions/methods if any are present in current line / Step-out: runs current function/method and returns to previous execution point

Listens for connections Setting up PhpStorm

/ Enable external connections and set correct port

/ More info can be found at https://www.jetbrains.com/help/phpstorm/2016.2/configuring-xdebug.html Setting up PhpStorm

/ Zero-configuration debugging / Create a new remote debug configuration / Important things to remember: / Host / Port / Path Mapping / Session ID

/ Hands on! Setting up your terminal

/ Your terminal needs to send out the session ID

/ Hands on! Let’s code!

/ WordPress theme / WP-CLI application / PHPUnit test References

/ https://wordpress.org / https://xdebug.org / https://www.jetbrains.com / https://phpunit.de / http://wp-cli.org / https://ndevr.io Thank You! Andrea Fuggetta / Email: [email protected] / LinkedIn: https://www.linkedin.com/in/andreafuggetta / GitHub: https://github.com/afuggetta

/ LinkedIn: https://www.linkedin.com/company/ndevr / GitHub: https://github.com/ndevrinc / Twitter: https://twitter.com/ndevrinc

/ Slides http://bit.ly/debugpstorm Q&A