For a long time, I followed the approach of creating controllers and repositories for individual entities (models). While this approach works, it slowly started to leave a bad taste in my mouth. After much researching into alternative approaches I was unable to find something that truly fit what I wanted. So I decided to have a go at creating my own.
PHP has come a long way since I started development some 15 years ago, and its frameworks are far from the small MVC framework I created back in 2008 to get my head fully around the concept. A lot of frameworks have fallen behind, unable to keep up with the rapidly changing climate, and those that have kept up with it polarise developers. It's easy to bash a framework, but what does it actually take to build a framework? I'm going to give it ago.
In this article, I'm going to go through some of the reasons I stopped using Eloquent, as well as covering the reason for Articulates creation, and the different iterations that I took to make it what it is today.
Multi-tenancy seems to be a hot topic at the moment, with many hoping that Laravel Nova was going to solve all of their issues. There are a lot of packages out there that aid you with your multi-tenanted endeavour, but it doesn't have to be that complicated. Honestly.
APIs are, after all, another data source, so why not treat them like one?
Lately I've found myself getting frustrated with Eloquent, needing more than Laravels default ORM offers. I'm a big fan of the DataMapper pattern, but I become disheartened with the overhead and complexity of Doctrine. My time spent with Java has brought out a love for objects, and absolutely everything being objects. With this in mind, I created myself a super basic lightweight ORM named Articulate.
The repository pattern is one that appears to polarize developers, with half swearing by and half swearing against. It's also something that seems to have been spoken about a lot, though I feel that more often than not, it's an over complicated over engineered approach.