Hugo Hamon is a PHP and Symfony certified developer. He worked nine years for SensioLabs, the creators of Symfony, as a Web developer, head of training and software architect. He's now a full time freelance PHP & Symfony consultant at his own company KODERO.
Formation en anglais
Automated tests are the guardians of your code. They guarantee that your application code works as it should be. They also enable to reveal bugs or edge cases that were not taken into account during the initial development phase. Writing efficient and clean automated tests is one of the keys to make software more robust, maintainable and long lasting!
In the first half of this workshop, you will lean how to craft different types of automated tests in order to test all layers of a PHP application. We’ll first focus on testing low level PHP classes of a PHP application thanks to unit and integration tests within PHPUnit. Attendees will learn how to validate their base domain layer in isolation, so that they can safely refactor and extending them later. As our knowledge of unit testing grows, we’ll learn some techniques to cover pieces of software that are time sensitive or third party system dependent (database, HTTP network calls, etc.).
The second half of the workshop will teach you how to setup more high level types of tests : acceptance & end-to-end tests. Using Behat & the Gerkin DSL, you’ll learn how to write expressive test scenario that can be writtend & understood by anyone in the team, including non developers. Finally, we’ll dig into end-to-end testing with Panther, a PHP library that enables scripting and a running a complete Web browsing scenario within a real Chrome/Firefox browser. This is the ultimate goal to ensure your Web application acts as expected from the HTTP request to the HTTP response and JavaScript interaction with the end user.
Be prepared to jump on an extensive testing PHP application journey!
Session en anglais - Intermédiaire
Sending notifications, synchronizing data with third-party services, or performing time / memory heavy tasks are use cases that lend themselves well for asynchronous programming. Thanks to the Symfony Messenger, you'll not only learn how to dispatch, route, serialize and process async messages ; but also learn how to monitor them, perform logging, retry failing jobs, deal with priority queues and even tests asynchronous messages in a Symfony app.