Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

lolsokje's avatar

Moving an existing vanilla PHP website to Laravel/Vue, using packages for different components

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;

  • a user system with a user portal where the user can save/view pretty much anything and everything relevant to their account;
  • a knowledge base/news page where they can share information and news regarding their subject matter;
  • a calendar of events where members and non-members can sign up and take part

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;

  1. how long would it take to rebuild the current website using Laravel and Vue, and;
  2. would it be possible to make all these separate components as generic and reusable as possible, while still being extendable to fit the needs of each specific client?

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!

0 likes
2 replies
kevin42can's avatar

Wow, two years and no responses. :(

So... what did you(r company) end up doing? And... how did it go?

1 like
lolsokje's avatar

@kevin42can Nothing ended up happening with Laravel, we still kept using the custom CMS and framework, and I ended up changing jobs to one where we use Symfony. Sorry to not be of any further use.

Please or to participate in this conversation.