I'm just starting on a software as a service project using CakePHP. I can see that version 3 is still in beta and I can see this project taking 3-6 months.
My question is should I start with version 2 or version 3 beta with the latter probably reaching a stable release.
I don't want to learn version 2 and then version 3 has a fair few changes.
Update: Go for CakePHP 3.0 now if you start a new project. CakePHP 3 is no longer in RC or beta state so it can be used without any doubts now.
The question is likely to get closed because it is opinionated, I'm undecided to put up a close vote for that reason myself, however...
Cake3 is in fact OK to be used for a project that is going to take 3-6 month - that is my opinion. But you'll have to expect a few API changes until then. I would not sacrifice the more modern architecture of Cake3 and language features, mostly the namespaces and closures for using an old version that doesn't support them just because Cake3 has not yet reached 3.0 (without the RC).
I've started using Cake myself when 1.3 was in alpha and the transition from 1.2 to 1.3 was pretty smooth. I've had to adept to the API changes during the ongoing development of 1.3 but this was not a game breaker and I never had to spend much time for it.
Same story with Cake3. We are using 2.x and started a new project using Cake3 and don't have much trouble with it. So far it just works fine and the occasional adoptions to the API changes are no game breaker as it was before.
You can see that Cake3 is mostly feature complete by now.
https://github.com/cakephp/cakephp/wiki/3.0-Roadmap
If you go further you'll notice that 3.1 is going to raise the minimum php version to 5.5.
https://github.com/cakephp/cakephp/wiki/3.1-Roadmap
This is because 5.4 is going to reach it's end of support. So there is no reason to support it any more. Based on this you can make your guess when 3.0 will be released: Likely before 5.4 is officially deprecated.
The one and only disadvantage of Cake3 right now might be the availability of plugins. But there are already lots of plugins that are upgraded to 3.0 and even new plugins for 3.0.
Update:
Absolutely 100% go with CakePHP 3.x. There should no longer be any debate as Cake 3 is now up and running and no longer in beta or RC...etc.
Original Answer:
If you're starting now (Jan '15), I see no point in learning CakePHP 2.x. Why go through the trouble, when by the time your project is complete, you'll already have out-of-date code (I know "out-of-date" might be a bit extreme, but...).
Not only that, but CakePHP2 and CakePHP3 are worlds different with a fairly sizable learning curve. I cannot imagine, at this point learning one language only to have to re-learn the entire thing in less than a year.
IF CakePHP 3 RC wasn't a viable choice (ie projects crashed all the time, or had issues left and right), and you're on a deadline, then you'd have no choice anyway. But CakePHP 3 RC seems to be running fine and is already being used on live projects.
The no-brain answer IMO: Go with CakePHP 3. I certainly would if I were in your shoes.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With