It’s that time of year when we take a look at the world of PHP MVC frameworks. Last year panned out pretty much as predicted. Laravel and Symfony stayed in the lead, while most other PHP MVC frameworks continued to fall behind. The innovation is not stifled as there are some new players on the block. Especially Phalcon framework, which definitely deserves an honorable mention.
Just as it has been true for the last few years, Laravel continues to lead the PHP frameworks movement. To boot, you have access to Laracasts for learning, as well as a great ecosystem and tools like Envoyer, Dusk, Forge, Spark, and a few others. Out of the box, Laravel is the only framework that can truly allow a developer to easily bootstrap an entire application lifecycle (SDLC) from “git clone” to fully-fledged production deploy, using all the tooling within the framework’s ecosystem. Laravel introduced some interesting architectural improvements to the routing system, the templating system, and various tooling features. And, just as many other PHP frameworks have, the latest releases of Laravel abandoned support for PHP versions below 7.
Additionally, we have Lumen which offers an elegant micro-framework (built on top of the familiar Laravel or “Illuminate” components). It can be easily integrated into the Laravel MVC stack as it is fully compatible with Laravel core. If you want to use an “Eloquent Model” from your MVC Laravel app inside the Lumen API app, you can do so very easily by adjusting configuration (pointing Lumen to make use of Laravel’s models).
Looking to get started on a new project? The choice is simple, you can’t go wrong with Laravel. Unless you have some very specific and unique requirements. Perhaps one of the frameworks below can satisfy those.
One framework, which has been a rock-solid staple of the PHP community, is Symfony. Symfony components (PHP libraries) comprise many of the other tools and frameworks (i.e., Laravel and Yii) in the PHP world. The company behind the PHP framework, Sensio Labs, has been around for about 20 years and they are responsible for pioneering tools like composer, defining PSR standards and providing incredible services such as Sensio Insights and Blackfire.io. Stability, consistency, and extreme modularity is what traditionally made Symfony great and thus popular among developers.
With the new version 4, we are seeing even more innovation introduced with Symfony Flex. Fabien Potencier, creator of Symfony, addressed the same issue, but not only that, he pivoted Symfony 4 to favor the composition over inheritance approach. In short, it means that there is no longer a dependency on one large core codebase (i.e., the “symfony/symphony” bundle). Rather each item or module, like form validation, can be easily turned on and off via Flex (auto-discovery and auto-configuration). Additionally, it provides the necessary tooling to handle projects large or small and allows you to swap the components in and out as needed. Keep the bloat down and functionality up.
Although it may seem just like another PHP framework, what makes Phalcon different is that it’s not a typical PHP MVC that you’d install via composer. Instead, it is a C-based, compiled PHP extension that is blazingly fast. Overall, Phalcon’s ORM makes use of PDO and has a simple and consistent syntax. Phalcon may be a new player, but it certainly has a unique edge in the space. Considering it has over 8.5 thousand stars on Github, the framework definitely has a strong momentum.
Why would you use Phalcon over some other framework? Speed. Plain and simple. If you don’t feel like bothering with caching strategies or setting up additional hardware (or software layers) just to handle extra requests, Phalcon may be exactly what you are looking for. After all it has all the features to build a solid MVP version of the application and make it really fast out of the box. Seems like a perfect use case for an app that focuses on the speed of processing first and foremost.
So what about microservices? Microservices is simply the next level of abstraction, further decoupling various functions of your application into a separate layer of business logic. The important take away is that microservices allow you to ensure separation of concerns not just within the application layer (i.e., Models vs Controllers) but also within the deployment architecture. JSON API requests may be served by the AWS API Gateway, while front-end is serviced via AWS EC2, yet both application talk to the same data store.
This year, we are going to see more companies implementing microservices (and/or serverless) architecture and it’s not a bad idea to familiarize yourself with some of the popular platforms such as AWS Lambda. And the incredibly powerful Serverless Framework. No this isn’t PHP MVC, but it will be an outstanding supplement to your skillset as a back-end developer.
This post was originally published on the zen of coding and has been edited for space – http://bit.ly/2nPd5yO