The CakePHP core team is proud to announce the immediate availability of
the first CakePHP 2.1.0 Release Candidate [1]. As noted in the previous
releases, this version is fully backwards compatible with 2.0.6, making it
a breeze to update your apps to start taking advantage of the many
improvements that made into this release. This will hopefully be the only
release candidate for the branch, should any serious bugs arise we will
keep offering release candidates until we reach stable.
In total, there were over 170 commits and over 4 new major features or
enhancements added to this release candidate, in addition to the previous
2.1 beta release. A complete list of the changes can be viewed in the
changelogs page [2]. This is a quick list of this version's main highlights:
Most helpers converted to utility libs
One common feature request was to be able to use methods from the Text,
Time and Number helpers outside views. Valid uses for the methods exposed
in those helpers are email sending in shells, data formatting before saving
in models and a few other cases in controllers. We have now refactored
those helpers into libraries CakeTime and CakeNumber, while all methods
found in the Text helper were placed into the String class.
Importing one of those libs is as easy as App::uses('String', 'Utility') and
use it as followsString::truncate($text);
All new libraries are composed of static methods, no need to instantiate
the class. Additionally, refactored helpers will still work as usual, but
they now rely in the underlying libs to function. This opens up the
posibility of swaping the "engine" those helpers are using to produce the
same results in views.
Deep saving
saveAll and friends (saveMany, saveAssociated, validateAssociated ...) now
accept a new deep option param. If you set this param totrue the it will
save data as deep as it can, bringing the posibility of saving any level of
data nesting you like in a single transaction. For instance you can save
the Author, Posts and related comments in just one call.
The aforementioned functions also accept a fieldList option to specify
which of those fields should be saved or validated. You can nest the field
list as deep as you need.
New ACL engine
In addition to the good old database ACL engine, we have added a new one
based on configuration files. This engine takes a php file containing
specific variables describing AROS, ACOS and permissions to grant access to
resources in your application. This is a great alternative to the dabase
solution for those who want to get a speedy permissions checking system
when not requiring a database to dynamically manage permissions.
HtmlHelper::media()
The HtmlHelper gained a new media() method to generate HTML5 compatible
audio and video tags with support for multiple alternate sources.
Other improvements and changes
- Updated minimum PHP version requirement to 5.2.8 due to PHP bugs
#44251 and #45748
- Paginator helper now accepts an option to set the default class for
the "current" page link
- Extending non-existing views will throw an exception
- Extending views using an absolute path (relative to the View folder)
is now possible
- Most view files in the cake core such as home.ctp and the default
layout were moved into the app folder.
- Query params are now shown in database log when using prepared
statements
We're almost ready with this version and we have a couple of surprises for
the community, so stay tuned! As always, thanks to the friendly CakePHP
community for the patches, documentation changes and new tickets. Without
you there would be no CakePHP!
- Download a packaged release [1]
- View the changelog [2]
Links
- [1] http://github.com/cakephp/cakephp
- [2] http://cakephp.org/changelogs/2.1.0-RC
--
Our newest site for the community: CakePHP Video Tutorials
http://tv.cakephp.org
Check out the new CakePHP Questions site http://ask.cakephp.org and help others
with their CakePHP related questions.
To unsubscribe from this group, send email to
[email protected] For more options, visit this group at
http://groups.google.com/group/cake-php