Training Class

Best Practices for Crafting High Quality PHP Apps
James Titcumb

A separate ticket is required to attend this full-day training taking place Oct 22nd (the day before the conference) -

The Best Practices for Crafting Quality PHP Applications workshop is an interactive exploration into some conventions, processes, and habits that help make better quality software. Whilst there is no single silver bullet, we will spend time discussing, supported by some practical exercises, what improvements we can make. We’ll focus on three core areas; planning, development, and testing; using a variety of practical explorations, group discussion and showing you discoveries from my own experience.

Equipment & Assumptions:

The course is aimed at junior-to-mid developers who have a good grasp of writing software but want to learn techniques to make software less brittle and write fewer bugs.

You will need a laptop or environment running:

  • At least PHP 7.2
  • Xdebug
  • Composer

Learning Objectives:

  • Planning techniques - communication, documentation, estimation
  • Development techniques - object calisthenics, types, static analysis, refactoring, naming
  • Testing techniques - testing legacy code, code coverage, mutation testing, acceptance testing
  • Code reviews
  • Deployment


At the completion of this course, you will know how to …
  • Communicate better to explore specifications deeper
  • Use techniques such as “Event Storming” to explore specifications better
  • Write documentation before software with feature descriptions in Gherkin
  • Hone your estimations of software
  • Use techniques such as “Object Calisthenics” to write better code
  • Use types effectively to improve the developer experience
  • Use some techniques from “Domain-Driven Design” to model objects in software closer to the business world
  • Use static analysis tools such as phpstan or Psalm to discover bugs
  • Use some techniques to unit test legacy code
  • Use some techniques to write better acceptance tests
  • Understand code coverage better and what metrics are useful or not
  • Mutation test your codebase to discover how effective your unit tests are
  • Review code better
  • Automate deployments and CI