Wrapping A Modern PHP Architecture Around A Legacy WordPress Site

WordPress has pretty much anything it needs to fulfill normal CMS requirements. However, most client websites grow organically to include more and more business processes into the WordPress application lifecycle, which ends up being problematic at best.

WordPress does not provide the proper architecture and mechanisms to deal with business processes in a reliable and scalable way.

This talk presents a case study of wrapping a legacy WordPress site into a scalable architecture, using a combination of existing and custom packages, that provides the following benefits:
– services architecture that lets plugins define their dependencies, with automatically resolved loading order
– auto-wiring dependency injection that allows coding against interfaces instead of implementations
– configuration management that can account for differences in environments
– centralized logging throughout the entire site that can be sent to logging servers
– bus system that handles events and commands without blocking the frontend
– all of this without any noticeable impact on content editors

The end result is a WordPress site that embraces most of the commonly accepted PHP best practices, while still offering the same well-known editing UX to content editors.


About Alain Schlesser

Alain is a freelance software engineer, WordPress consultant and solopreneur living amongst the dormant Eifel volcanoes in Germany. He started out as a government agent working in prison administration in Luxembourg, and has recently made the switch to self-employment to enjoy productive work without the bureaucratic hurdles. He has worked with numerous platforms and programming languages for the past 25 years, and is now trying to settle down on modern web development with the WordPress platform. He is passionate about software architecture and code quality and never misses an opportunity to share best practices. He offers his WordPress services and expertise through his company Bright Nucleus, while you can catch some of his more personal ramblings at http://alainschlesser.com/.