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.