Fixing the foundation of a standing house
I keep mentioning my stop building gold on top of crap blog post and here I go again. Basically the point of that blog post was that way too few PHP applications are build on top of a general purpose framework that enables developers to add custom functionality not directly related to the core of the application without having to commit suicide. Now I was arguing for these applications to adopt existing PHP frameworks. Obviously that would mean handing over quite a lot of control and for a large established application this might be a scary proposition even if it could save resources to focus more on the actual end user facing features of the application. Or there are others reasons, but either way it is a good move to think about how your foundation can empower such customizations. Interestingly enough I would claim doing so will also likely have a positive effect in your application on top as it will help untangle dependencies and assumptions into a cleaner structure. Even back when I initially posted my complaint Typo3 was already hard at work on doing exactly that: building a solid general purpose framework as the foundation of their next major CMS release. Today these efforts have come together in the first stable release of FLOW3! But other CMS are not idling either: With Nooku there will soon also be a rewritten core for Joomla and Dries and his team are also looking to clean up the core of Drupal to become more of a framework separated from all the higher level end user facing stuff in Drupal 8.
Just wanna say: Awesome!