Wow, two years and no responses. :(
So... what did you(r company) end up doing? And... how did it go?
Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.
At work I'm currently working on a website built using a custom CMS and a custom PHP framework. Both of these were created around 10 years ago and over the years have been kept up to date, but both lack certain features and any documentation, sometimes making it hard for clients to do what they want to do in the CMS, and making it hard for developers to write clean code.
My bosses have finally realised it's not viable anymore to maintain all these custom pieces of software. In fact, we often need to reject clients simply because we don't have enough time to work on their project, let alone support 2/3 internal projects. We're only a small team so it simply doesn't make sense to maintain them when it comes at a cost of potential clients.
The specific website I'm working on is one of potentially 30+ clients, as they all pretty much have at least these components on their website;
As I'm the only one with Laravel experience (or any framework at all for that matter), I've now been tasked with researching two things;
Obviously question 1 is something only I can answer, however up till now I've only ever had to develop very specific websites with very specific needs. How would I go about making at least these three components reusable, but also extendable?
For example, a knowledge base item consists of at least a title, a WYSIWYG content editor, and a header image. However some clients might wish for more customisability, like the current client wants to attach a specific location for each knowledge item (still don't know why, but that's not my worry). My goal/idea is to develop all these components as separate packages with the bare minimum and install them from a private repository. Is this a good use case for Domain Driven Design? I know I'll have to publish the package files to edit them, but I'd still like to keep them grouped together for each component as much as possible.
And just in general, what are some good resources to get started with package development and integrating them into an existing application? Any help/tips would be greatly appreciated!
Please or to participate in this conversation.