For those of you who may have missed it, this week we released the first alpha of CakePHP 3.0, with a significant update to begin our move towards beta. I'm really excited to see how the project is evolving, and the amazing work that the members of the core team are doing, as well as what all those contributing are helping to build. But its important to look back in retrospect, and understand from where we've come.
Baking the Cake
If you're not aware,
CakePHP has now been almost
10 years in the making. That's a long time for a project to stay as
active as it has. Everyone has their favorite framework, and some like a few more than others, but one thing that's clear in my mind is that
CakePHP has always been
very popular, even until today.
The project started when I teamed up with
Michal Tatarynowicz, who had created the basic feature set of what would become
CakePHP. I had begun work on what is currently the model layer in the pre
3.0 version of the framework, and continued leading the project when
Michal left shortly after we open sourced under the
MIT license. This was back in 2005, and working with
PHP 4. Back then we had to work around the language a lot, as it was lacking the object oriented features which we now all take for granted. We had to emulate or actually build out many of the native aspects now included with
PHP, which made the task all the more complicated. Don't get me wrong, it was fun times, as the language was growing fast and we were all pushing it along. It's no secret the
Rasmus isn't a huge fan of frameworks, but like
Rails for
Ruby, many of the frameworks for
PHP have also helped the language gain a place in many people's hearts.
But time goes by, and like all things,
PHP grew up and matured as a language. A lot of the features we had implemented for
CakePHP in
PHP 4 now became native with
PHP 5, so although we'd provided the solutions when they weren't available, these now became redundant. But people and hosting companies were slow to
adopt. The framework had grown a large community by then, so it was difficult for us to just drop support for
PHP 4 and leave them without their framework. It was also in our interest to support
PHP by prompting people to upgrade, so we took the middle road. This is where our infamous backwards compatibility for
PHP 4 stems from.
There were disagreements between core members of the project, where some advocated for jumping the gun and releasing a version which required the latest version of
PHP, but I refused to allow our community to be left behind. These are people who had grown up with the framework, people who relied on us to keep a solution which allowed anyone to use it. In hindsight you could say that those developers weren't worth supporting, but I see our community as a family, and like my Marine training taught me, no man gets left behind.
However, the years past, and we went from
1.2 to
1.3, and
CakePHP begun to mature into a powerful solution for rapid application development. We also saw how adoption for
PHP 5 improved, and hosts begun to offer broad support, which is when we decided to make the move to
PHP 5.2 with the release of
CakePHP 2. There were mixed feelings about the decision to not jump straight to
5.3, but I still feel today that, in allowing the framework to mature as it has on a stable code base, people who have counted on us would hopefully understand that choice.
Growing up as a Community
Like the years that have come before us, we all grow up as developers, and
PHP the language grows with us. The impulse we've seen over the past years with the releases of
5.3,
5.4 and
5.5 have shown how the community can really build a powerful language. But it's not only the language that grows, but the community around it as well. We've seen over the past years how interoperability between frameworks has become a requirement, and the technical expectations of developers have become consistently more demanding. We've seen how the rise of packages managers, like
Composer, have facilitated this distributed and modular approach to building
PHP applications. So when we looked at what we expected for
3.0, as
Jose Lorenzo said in the technical
keynote at
CakeFest, our annual conference,
"we're all older and wiser", so it's time to put those years of experience to good use.
So, for
CakePHP 3.0 we decided that now is a good time to take our community and move everything towards a stronger and brighter future. This means that we've made some of the important decisions, which align the framework with the coming features in the language, and provide the same framework goodness people are used to, but deliver it with new features which upgrade the solution for another
10 years to come. This also means breathing new life into many of the core aspects of the framework, which in some cases have become its winning features, and in others the infamous trademarks of
CakePHP.
I invite you all, those who love
CakePHP and even those who don't, to give this alpha of the latest major version of the framework a try, and let us know how well it tastes. We hope that this is the beginning of a great new chapter in the history of
CakePHP, and one which lets us grow further, and together, as a community. Thank you.