Decision Time: PHP Framework Dilemma

My freelance business has grown, and reached a critical decision point for my future development. I’ve been puzzling over this for a while – why not puzzle it out in public!?

I need to pick a PHP framework. Or maybe not pick one. But my dilemma is kind of unusual. I’d love the opinions of other experienced PHP devs! But hear me out, my situation is a bit unique.

Unhelpful Metrics

Extensive research has given me endless comparisons of Laravel vs Symfony & others, using completely useless (to me) metrics like:

  • Number of GitHub stars.
  • Google search popularity.
  • Job postings.
  • Number of StackOverflow questions.
  • Millisecond differences in speed.
  • Etc.

These comparisons aren’t helpful. Let me explain why.

My Situation

I build websites & web applications for small to medium sized businesses. Most start as a basic website with a contact form, Google Map, and that’s it. Many never grow past this. Some eventually add custom dynamic elements. Say a work-order status page. A searchable directory, etc. A few have grown bigger.

But, and this is key… I also provide hosting, so ongoing maintenance is on me. I don’t deliver a project & wash my hands of it. I make future text changes, fix bugs, add things & keep it running – for sometimes many, many years. My oldest PHP project in production is over 10 years old!

Over time I will end up with DOZENS of these projects to take care of.

I don’t have the luxury of one, beautiful application to keep front-of-mind.

And so, stability over time is a key. Easy upgrades are key. This is why WordPress replaced my internal CMS for clients who fit that use-case: one-click upgrades baby! That’s gold.

Until recently I was using a simple, custom MVC framework that I built. Most of my existing projects are on that. But it’s over 8 years old, pre-Composer, and time for a new direction. To give that old workhorse some credit though- it has needed almost zero updates over that time (likely due to stagnating on PHP v 5.6).

I have a few months of experience & learning with Laravel, it’s nice. But ongoing updates are a concern. Backward compatibility isn’t a priority for Laravel. And it’s overkill for 90% of what I do.

I’ve built a few things with SlimPHP.

I’m intrigued by Symfony because it starts as a micro-framework & grows with you. Awesome!

I’m also considering sticking a few stable Composer packages together for a light version of a ‘framework’ that will cover all but my few large projects. Maybe Slim is exactly that?

Maybe 90% of what I do doesn’t need a framework at all.

It all boils down to not wanting to regret my choice 10 years from now. My youngest child starts school next year & when that happens I’ll be throwing my efforts into my business full time. Between now & then I want my ducks in a row & to do the necessary learning.

TL;DR – My Priorities

  • PHP based.
  • Stability over time.
  • Well documented & clear upgrade process.
  • Grows with my needs over time.
  • Doesn’t break backward compatibility on a whim.
  • Ok to have one option for small stuff and one for big projects.

Thoughts?

Do you have experience maintaining several framework-based projects over time? What do you use? Is it painful?

Am I crazy for thinking everything even needs a framework?

How does your company handle the time spent maintaining & upgrading a client’s project? Do you bill them for the time? Offer a Support Licence with a monthly fee that covers this type of work? Bundle it in the hosting fee?

Thanks everyone!

Discussion is on Dev.to.

Leave a Reply

Your email address will not be published. Required fields are marked *