The stable version of Yii 2 is officially released today and I thought I would mark the occasion by writing about it. I think the release of the framework is significant and it will impact PHP programmers for many years to come.
You can read the Yii 2 official release here.
The more I learn about Yii 2, the more I like it. Even though it was only in alpha when I started learning it, and the documentation was incomplete, I was able to go much further on Yii 2 than other PHP frameworks like Symfony and Laravel. Not only could I see obvious benefits in the architecture of Yii 2, but Yii 2’s advanced template provided me with enough structure out of the box to get something started, and that something included mobile-first bootstrap design with a working user model.
Sometimes, all we need is to be able to follow a well-thought out implementation and the advanced template is certainly that. With just a little modification, I was able to create a custom, and I should say simple, access control for admin, roles, user types, etc. I was able to do it quickly, getting an application going in about week, which considering where I was as a programmer when I started, was pretty cool.
Yii 2 is just incredibly well-thought out. It seems like the dev team has anticipated just about everything you could ever think of and found a way to support it. The behaviors and event architecture is feature-rich and very intuitive. And then of course there is Gii, the amazing tool that cranks out code for you and saves you even more hours of work.
I think the biggest frustration anyone feels learning a framework is dealing with the sheer size of it. This is true of any of the big frameworks and also true of Yii 2. You can’t just snap your fingers and master it.
Yii 2 is like a Ferrari. You want to jump in and go and leave tire tracks, but first you have to take the time to learn how to drive. What a drag.
Maybe that’s not the best metaphor because it should be understood that it takes significant time reach a level with PHP that allows you to run at high-performance. Gone are the days when PHP was just a quickie scripting language that let you build a form for your webpage. What we have now is more like rocket science, or, and not to be comical, more and more like Java.
Anyway, Yii 2 has a huge code base. When you work your way in recursively, deep into the framework, you find yourself in strange territory quickly. And I guess that’s what makes the surface so amazing. The deep wizardry is extracted to base classes that allow us to have these nice intuitive methods to work with.
I’ve documented hundreds of pages of work in Yii 2, so much so, I may even write a book for beginners on it. If you really want to learn something, try writing a book about it. It’s a very exhausting, yet effective technique.
And yet, for all that work, meticulously documenting controller methods, models, view architecture, and form models, etc., I still find it hard to explain exactly which features make me like Yii 2 so much. And I think the reason for this is a non-programming term: flow. Yii 2 just seems to flow.
I tend to think in creative terms. If I have an idea, I want it to flow. I don’t want the idea to come up against endless barriers because that is what kills ideas. The extent to which Yii 2 helps my creativity flow is a measure of how much I love it. And I love it a lot. It’s driving me to learn this alien rocket science, so I can take the new rocket ship up and see what the world looks like from that orbit.
A new generation of programmers will do the same. They’ll take it to heights none of us have ever seen before. PHP is in fact alive and well and flourishing in Yii 2. Check out the poll results in some of my other blog entries and you’ll see what I mean. I find this all very exciting.
Anyway, I’ll conclude by congratulating Qiang Xue, Samdark, Cebe, and the other dev team members for reaching such a great milestone. They made something really special. If I could say I only know one thing about programming, it would be this: it ain’t easy. So, great job guys and congrats again.