So many PHP frameworks - Laravel/Symfony/Phalcon

This year I coached students on so many competitions :)) Codextreme, Splash Awards, World Skills, Samsung. Kinda interesting. During these few days, I was trying to refresh my PHP frameworks knowledge. I am most familiar with Yii framework. However, it takes forever for Yii v2 to get ready for production usage. I also do not like the fact that it only supports PHP 5.4 onwards. It simply limits plenty of deployment options out there.

Recently, I also had experience with Processwire CMS. It is a small but cute CMS which is quite flexible. However, it uses only MySQL ISAM and actually create a database table whenever you create a field. This obviously will only work for a small website. I also do not like the fact this it is not really a framework, more like a Content Management Framework i.e. it is good for content building, bad to extend with modules and functionalities. It is also not very object oriented MVC based and does not take advantage of newer tools like Composer. It also does not have a CRUD or module generator to speed up the development. It does not have an ORM but offers a way to do query for custom fields/content blocks using a jQuery like syntax. To be honest, I always prefer to write my own SQLs or use some ORMs. If ProcessWire is rewritten with one of the popular frameworks, it would be really great.

I did some research and finally decide to try Symfony first. It seems to be the future of PHP frameworks as Drupal 8, ezPublish and many other popular open source libraries/cms/frameworks are written on top of it. While I appreciate the beauty in the design of Symfony (bundles concept), I absolutely hate the fact that there are so many configurations. I really wish it is more opinionated. It is extremely frustrating to get started. I need to read the getting started guide, the book and then do the Jobeet tutorial which is a little bit outdated. Compared to Yii, this is so painful. The learning curve is high. I gave up after 1 week of trying to play around. If I want to learn this framework properly, it will take at least 2-3 weeks. As it is so customisable, it actually lowers down my developer productivity. I wish some bundles are integrated by default (like user bundle and admin bunder).

After giving up on the framework, I tried hard to look for alternative. Then I notice the Phalcon PHP framework. It is really cool. It is very different from other frameworks by running as an extension written in C. So the speed is extremely fast. Taking a look at their video overview, I instantly understand their framework as its MVC way is more or less the same as Yii. Their ORM is also using Active Record pattern. I really wanted to try this framework. However, after much consideration, I decide to avoid this as there is like 0 extension/plugin. :(( They are still working on version 2 and another language called Zephir. So sad. Another issue is that it is difficult to install and require C compiling and advanced knowledge for debugging. Really sad!! Only if it is more stable. They can even include a non-blocking library to make it similar to Node.js. Only more powerful and equally as fast. Hopefully, this project will be more stable in 2 years time. I hope it will kick off.

Having wasting time on researching, I decide to come back to Symfony's brother framework i.e. Laravel. Initially I was avoiding this framework after reading comments and feedbacks that this is a one-man show. It uses too many libraries, bloated, etc. I was also seeing comments said this is more for beginners and have smaller number of quality bundles/extensions comparing to Symfony. I decided to try this anyway.

And it is GREAT. So easy to learn comparing to Symfony. I can understand it within 1 day.

OH YES!!! No more endless frustrations like Symfony. Now I know why it is so popular.

comments powered by Disqus