Over the last couple of months we've been using Laravel and it's been an amazing journey, where we're finally nearing the end of developing an internal application that has had rewrite after rewrite.
We're developing an internal bespoke CRM system, it's a massive undertaking because the current version has been running for near 5 years and has had many new features added and removed over this time. On top of that we've been adding some powerful new features that will add a lot of awesome to it.
When I first decided that we would use Laravel for the job I'd had no experience with it what so ever. I setup a new project and had a quick play. I was in love. I started setting up the base project and adding some routes that had some controllers assigned to them.
Since we're all PHP developers the language and ideas were easy enough to pick up. We were able to quickly iterate through our starting milestones and bring ourselves up to where the previous rewrite was at in just under two weeks. This alone is incredible. The rewrite had taken months of work and it still wasn't solid. We've still no idea why...
By using a framework which promotes writing good code and following the same principles throughout we didn't need to write any boilerplates or fluff to get the job done. It was ready for us and we could dive straight in.
The key features that we're still amazed by include:
- Eloquent. Creating a model from a table automatically still impresses us and how easily we can overwrite attributes etc.
- Caching. A Redis driver is built in and we've managed to decrease load times by putting tagging to good use.
- Blade. Even with its minor faults, Blade allows us quickly write whip up a template and get it nested within the rest of the system.
And quite a lot of internal features that Laravel exposes too which allows us to quickly add new features or change how something works.
Sure, some things are very annoying — Eloquent query builder misses a few useful helper methods, the routing system doesn't pass variables through within filters properly and model relationships can't be constrained by anothers attributes — but we've been able to work them by bending Laravel to our wills.
All of this to say; if you're a PHP developer and haven't checked out Laravel yet, then do so. You won't regret it.