PHP MVC framework in 2017


PHP MVC framework

Lets us view the trends of last 5 years in terms of PHP MVC Frameworks before discussing about the current state.

php_mvc_frameworks_2017

Image Courtesy: https://www.sitepoint.com/the-state-of-php-mvc-frameworks-in-2017/

 

Trends seems to be holding true still as far as laravel is concerned which is still gaining popularity. at the same time rest of the frameworks are pretty much lagging behind apart from Symfony. CodeIgniter not being a true MVC framework stands out of the competition.Symphony 3 is not only responsible for developer experience improvement but also for dependency injection. A micro-framework is offered by Symphony 3 just like any other framework. ZF3 included improvements like support for PHP7 along with its own micro-framework. Still ZF3 is very much similar to ZF2.

 

Laravel is real game changer with Laracasts, simple pattern implementations, world wide developer talent, integrated testing toolsets, Lumen lightweight version, active record implementation in the form of Eloquent and local development using Homestead (Vagrant) makes this framework the preferred choice of new developers.

 

In case you want multiple anonymous functions or active record pattern seems odd and you want extra flexibility of repositories then it is advisable to use both Symfony + Doctrine.

Symphony is still to show a major change from previous year but there is more to well designed application than simply MVC. Although deployment pipeline, decoupled architecture and infrastructure can be though achieved with MVC stack but you need to be attentive to ensure there ain’t a monolith.

 

Microservices
A microservice is one of the trending move with its microservice oriented architecture (MOA). An MOA ensures each service is running within environment and allows the flexibilty to design best possible approach to solve particular requirements.

It though helps in solving issues and ease running a local environment across various platforms but, bring you close to MVC Monolith inside your app layer.

 

Scalability
In order to scale a monolith if you build more logic into same MVC stack it will fetch you a huge amount of complexity otherwise, if you try to build several hundreds of microservices in different languages then it becomes complex to deal with all of them simultaneously. In such scenarios it is recommended to approach third part providers be it image processing, data analytics, logging or simple background jobs.  It will be architecture jobs to analyse what to be taken to SaaS system at very low monthly cost or a custom built docker service running in cloud.

 

I personally feel there is no benefit in re-architecturing project from scratch rather rolling out an improvised foundation through decoupling whatever possible is more manageable .A clear understanding of bottlenecks in system and its application is more practical.

 

As far as microservices are concerned that seems to remain in 2017 then learning GoLang is quite ideally suited as it is speedy with very less foot prints and parallel processing hence an excellent option for development of small containerized apps. An important issue that has been solved by MOA is that although containers assist in eliminating the monolith from backend there will be multiple architectural issues at the front-end layer or at the view  else at UI.

 

It is totally based on your requirement that if the eventual response object will arrive via Lumen driven endpoint (URL) or an orchestra fromdecision making and processing units that have been decoupled with a messaging interface.

 

At last all in all i would say learn Laravel for sure while keep a close watch on GoLang and Docker and strict focus on  deployment pipeline. Looking forward to respond to your queries and comment regarding your choice for website building platform.

About Singsys Pte. Ltd. Singsys is a solution provider that offer user friendly solution on cutting edge technologies  to engage customers and boost your brand online results from a set of certified developers, designers who prefer optimized utilization of the available resources to align client’s idea  with their skillset to reflect it into a  mobile application, web application or an E-commerce solution.