An often heard question is “What are the differences between CakePHP 1.1 and CakePHP 1.2?”. So with this post I try to give you a short overview of the differences between those two versions (if you miss an important change in the list below, please let me know and I will append it). As CakePHP 1.2 is still under development, not all topics listed below are fully implemented yet. And for many topics there is no documentation available yet.
- New file extension for view files (.ctp instead of .thtml)
- Definition of routes in app/config/routes.php changed a bit (Router::connect instead of $Route->connect)
- Integrated test suite
- A growing number of core classes are tested (cake/tests/cases)
- Three new core components: Auth, Cookie, and Email
- Support for DB2, Oracle and Sybase
- Support for global Javascript and CSS files (vendors/js resp. vendors/css)
- Model behaviors
- Three core behaviors: Acl, Translate, Tree
- Form related functions have been moved from the HTMLHelper to the FormHelper
- Four new core helpers: Js, Paginator, Rss, and Xml
- Support for themes
- i18n and l10n support
- Command line console (bake2 will probably get integrated into this new console infrastructure)
- More advanced validation
- Dot notation for HtmlHelper and FormHelper (Model.field instead of Model/field), thanks to Dieter@be for the hint
- Named arguments (thanks to poLK)
- New core classes: Set (thanks to poLK), Debugger, HttpSocket, Socket
- More advanced caching facilities. Support for APC, memcache, xcache, file-based and database-based caching
And of course CakePHP 1.2 contains a lot of bug fixes and small enhancements.
Update (2007-04-07): Added new topics
Update (2007-05-01): Added caching topic

These are on great help on getting the picture what is new. However i think we need some more examples in the manual or separately to try these new cool features.
Hi Daniel,
just for case if some of below points aren’t ’small enhancements’ for someone:
- new class Set
- SessionComponent::activate() (is merged to 1.1 also)
- named arguments
- Router::parseExtensions() along with RequestHandler
- scripts/extract.php (part of I18n, I know)
- caching locations of used classes in cache/persistent/class.paths.php
- shutdown() callback for components, beforeRender() callback for helpers
I so look forward to 1.2! My only issue is with the file extension change to .ctp. I have had to wrestle with artists, users, SEO people etc. to get them to use .thtml (which is not recognized by many editors). Now another change. What is the advantage of .ctp? My hope is that there is a setting for me to choose to stick with thtml, or even set to plain html.
@All: Thanks for your comments.
@Macedon: There will be some documentation when cake 1.2 is released, in the meantime you have to check the different cake blogs for examples.
@poLK: Thanks for the additional topics, I will add them to the list.
@John: .thtml will still work. The extension was changed to .ctp (Cake Template) because .thtml implies HTML code.
Daniel,
Thanks a lot for all of the work you put in to your blog on announcing these changes! I’ve only somewhat recently subscribed to your blogs feed (and tried to learn CakePHP), so I don’t know if you’re an internal developer, or just someone in-the-know. I’m curious if you happen to know if the Manual is going to get a complete evaluation and review with the 1.2 release? I’ve noticed parts of it have been updated with each new release, and other parts seem to have been missed (just noticeable typos and such, but it makes me wonder what else has been missed). The current state of the manual also seems to be a common complaint others have mentioned. It’s a great start, but it could be better. (Sorry to direct this to you — you just were “lucky” enough to be the most visible to me to contact).
I’m looking forward to the new features you’re talking about here!
@Brendon: Yes, I am in the Cake Team. And yes there is a new manual in the work. It probably will be available when cake 1.2 is released.
Nate also lists quite a few changes: http://cake.insertdesignhere.com/posts/view/17
On first sight I think there are many of them list there that you forgot to mention :-)
Also, I think I might have found an undocumented component callback, called “initialize()”. I’m not sure about this because I haven’t seen this mentioned anywhere. But it seems to be there on line 71/72 of cake/libs/controller/component.php
@Dieter: Oh, the items in Nate’s list are what I meant with “small enhancements” ;-)
Thanks for mentioning that callback function, I was not aware of it.
There’s now an introduction to the new cache stuff @ http://jirikupiainen.com/2007/05/21/cakephp-cache/
@jiri: Thanks for the link.
[...] many new features [...]
[...] clearer idea about what are the new features in 1.2, head right to the article by cakebaker called What’s new in CakePHP 1.2 ? The article clearly lists down all the major changes made in 1.2. Cakebaker also has an article [...]
[...] und ganz im 1.2er Kuchen aufzugehen. Eine gute Übersicht aller Neuerungen findet ihr bei Cakebaker (englisch). Doch nun genug der Einführung, lasst uns endlich in das Tutorial [...]
[...] Experience with CakePHP 1.2 (pre-beta version) Jump to Comments Its been few days since CakePHP 1.2 pre-beta version released! Couldn’t wait to use it as I got an opportunity to develop an online booking system. There are lots of changes in 1.2 comparing 1.1 version. If you used CakePHP 1.1 and thinking to use CakePHP 1.2 then you should have a look what’s new in Cake 1.2 here: http://cakebaker.42dh.com/2007/04/05/whats-new-in-cakephp-12/ [...]
Awesome overview in brief
@Rajiv: Thanks!
[...] things you must know… what’s new in 1.2 (check the links in comments [...]
[...] What’s new in CakePHP 1.2? Oleh CakeBaker 2. Making The Blog Tutorial Run on CakePHP 1.2 oleh [...]
[...] of CakePHP 1.2 is presented in pdf that comes along with the beta version. Additionally, What’s New with CakePHP 1.2? lists the differences between 1.1 and [...]
[...] A la pàgina de cake ja anuncien la verció 1.2beta, amb algunes millores i diferències, en la forma d’organizar les coses, veure http://www.cakebaker.42dh.com [...]
:-)
http://jirikupiainen.com/2007/05/21/cakephp-cache/
Not Found
The requested URL /2007/05/21/cakephp-cache/ was not found on this server.
:-(
@pizaninja: It looks like this blog no longer exists. But you can still access the article via archive.org. There is also a section about caching in the cookbook.
Hope that helps!
Can anybody give…brief description for all new new in CakePHP 1.2
which are the features added in cakephp 1.2?can anyone tell the advantages of 1.2
@Amrish, krupesh: Have a look at the official announcement: http://bakery.cakephp.org/articles/view/the-gift-of-1-2-final. I hope it answers your questions!
Thanks for sharing the reason behind change from .thtml to .ctp.
This makes the files more “caky” in their names probably :)
Take Care
@Netemp: The primary reason for switching to .ctp was that .thtml implies views are only for HTML content. And that’s not true, they can also contain XML, Json, or whatever content. And .ctp (which stands for “cake template”) is neutral in this case.