Skip to content

Releases: cakephp/cakephp

CakePHP 2.4.5 Released

26 Jan 20:09
2.4.5
Compare
Choose a tag to compare

The CakePHP core team is proud to announce the immediate availability of CakePHP 2.4.5. 2.4.5 is a bugfix release for the 2.4 release branch. A short list of the changes you can expect is:

  • Generated DOM ids for radios and checkboxes should now be collision free when using non-alphanumeric values.
  • The postgres driver now quotes schema names. This solves issues with legacy schemas using special characters.
  • Translate behavior now correctly handles translated values of '0'.
  • Controller baking now provides better feedback when no controllers are generated.
  • Datetime inputs will not select year 0 when the selected value is '0000-00-00'. This improves compatibility with MySQL.
  • Schema creation with the connection parameter now works as expected.
  • URLs are no longer double URL decoded. This fixes lost data when named parameters or path segments contain values that look like URL encoded data.
  • Model::updateCounterCache() no longer triggers a notice error when $this->data is empty.

You can view the full changelog on cakephp.org[1]. I'd like to thank the people who have contributed to this release. Your bug tickets, documentation edits, and patches/pull requests are a big part of what keeps CakePHP alive and ticking. Download a packaged release on github[2].

Links

CakePHP 3.0.0 dev preview 1 released

05 Jan 21:54
3.0.0-dev1
Compare
Choose a tag to compare
Pre-release

The CakePHP core team is very excited to announce the first development preview of CakePHP 3.0[1]. The team has been hard at work for the while, and we're very excited and pleased with the progress we've made so far. Our goal with development preview releases like this is to gather early feedback about the changes coming in CakePHP 3.0. While a number of things will be changing in CakePHP 3.0, our focus for this release has been the ORM.

The Model layer in CakePHP has served the community very well for the past 8 years, but it has started to show its age. One of the goals of CakePHP 3.0 is to replace the ageing ORM with a more modern object-orientated implementation. This development preview has the underpinnings of the new ORM. The ORM has many of the features/methods you can expect in future 3.0 release, albeit with a few rough spots.

CakePHP 3.0 represents a significant break in backwards compatibility. One of the largest the project has ever had. We're trying to modify existing methods and classes only where it's required. However, modernizing the ORM has caused a significant ripple effect to other parts of the framework. You can expect fairly significant changes in everything that touches the ORM/Models as we've started over and built what we will become a great ORM.

Still a preview

We'd like to remind you that this is a development preview release. Many features are incomplete or missing. For example, the TreeBehavior and TranslateBehavior do not yet have 3.x versions. This release is not intended for production use, and should be considered alpha software. We are hoping that by releasing preview releases we can get feedback from you - the community - about CakePHP 3.0. The following features are known to be incomplete or broken. We will not be accepting any bug reports on these features at this time:

  • Console/cake bake does not work at this time.
  • FormHelper does not work with the new ORM yet.
  • SchemaShell has been removed.
  • Scaffold has been removed.
  • Many behaviors have been removed or are not working.
  • AclComponent is not working with DbAcl.

In addition to incomplete subsystems, many subsystems have had breaking API changes made to them. We recommend you checkout the migration guide[2] for more detail on which methods/classes have been changed.

Other improvements

In addition to the ORM we've improved other parts of the framework. A short list of improvements you an expect are:

  • Reverse routing has almost consistent time complexity now. In previous releases reverse routing performance decreased as the number of routes increased. Thanks to named routes and some additional optimizations routing performance should stay more consistent even with large numbers of routes.
  • Routing prefixes now map to controllers in sub-namespaces and not prefixed methods.
  • New HTTP client. The HttpSocket class has been entirely re-written. It is now simpler, more performant and easier to use.
  • Simplified configuration. While CakePHP does not have much configuration required. The configuration it does have is now much simpler and more transparent than ever before.
  • Community standards adopted. CakePHP is leveraging PSR-0, PSR-1 and composer support.
  • Streamlined events system. The events system is now simpler and more efficient than ever before.

Getting started

On top of the framework changes, we've created a new repository for the application skeleton[3]. You can install this and the development preview of CakePHP using composer[4]. After downloading and installing composer you can use:

$ php composer.phar create-project -s dev cakephp/app

This will generate a new application, so you can start experimenting with CakePHP 3.0.

Documentation online

While this is a preview release, we have been busy building documentation alongside the code changes. The in-development book[5] and API[6] are already online. They will be receiving frequent updates as more documentation and examples are written.

Getting involved

If you're as excited about CakePHP 3.0 as we are, there are many ways you can get involved. You could help with the open issues in github[7], or provide your thoughts on any of the open RFC/Enhancement tickets. Both of these help us design and build the best framework we can. If you're reading through the documentation and notice an error, please let us know, either by opening an issue or sending a pull request.

I'd like to thank everyone who has contributed thoughts, code, documentation or feedback to 3.0 so far. It's going to be a major milestone for the project, and we're just getting started with making it the best version of CakePHP ever.

Links

CakePHP 2.4.4 released

25 Dec 05:50
2.4.4
Compare
Choose a tag to compare

The CakePHP core team is proud to announce the immediate availability of CakePHP 2.4.4. 2.4.4 is a bugfix release for the 2.4 release branch. A short list of the changes you can expect is:

  • TextHelper::autoLink() now handles email addresses inside URLs correctly.
  • Pagination request data is set even when a NotFoundException is raised now.
  • Model::deleteAll will only delete distinct records now.
  • Router::mapResources() now ensures that the prefix has both the leading and trailing slash.
  • An infinite loop condition in CakeSession was fixed. This could be triggered by starting an already invalidated session.
  • Hash::numeric() now works as expected with negative numbers and other numeric values.
  • The 'my' and 'ym' formats for Validation::date() have been relaxed to allow both 2 and 4 digit year values.
  • FormHelper will not infer types incorrectly when type=checkbox is provided.
  • Postgres biginteger primary keys now correctly use the bigserial type.
  • FormHelper::dateTime() correctly handles times around 12:00:00 when an interval is also used.
  • Hash::combine() now throws exceptions when the key and value paths result in arrays of differing lengths.
  • CakeRequest::referer() no longer incorrectly reads the HTTP_X_FORWARDED_HOST header.
  • CakeRequest::host() now has a trustProxy parameter that allows access to the proxy host value.

You can view the full changelog on cakephp.org[1]. I'd like to thank the people who have contributed to this release. Your bug tickets, documentation edits, and patches/pull requests are a big part of what keeps CakePHP alive and ticking. Download a packaged release on github[2].

Links

CakePHP 2.4.3 released

25 Nov 02:26
2.4.3
Compare
Choose a tag to compare

The CakePHP core team is proud to announce the immediate availability of CakePHP 2.4.3. 2.4.3 is a bugfix release for the 2.4 release branch. A short list of the changes you can expect is:

  • API Documentation improvements.
  • Long headers are no longer wrapped with PHP_EOL when sending email with MailTransport. This should solve delivery issues with Qmail, and other SMTP transport agents.
  • Model::_clearCache() has improved performance.
  • Model's now work better with schema's containing numeric column names.
  • An exception is now raised when a view block is opened while it is already open.
  • SchemaShell no longer uses schema.php as the filename when a custom name parameter is provided.
  • MKV is a supported content type.
  • CookieComponent writes are now more consistent. Previously writing multi-key and single writes were handled
    very differently. Fixing the write consistency makes deletion data saner and results in fewer cookies being transmitted.
  • Empty array data in cookies is now parsed correctly.
  • CakeTime::dayAsSQL() now correct supports the timezone parameter.
  • COUNT(DISTINCT x) queries work better in SQLServer now.
  • Postgres sequence values now use custom primary keys.
  • HtmlHelper now correctly encodes URLs generated for meta tags.
  • Using FormHelper::postLink() after creating a GET form now works as expected.
  • Model::saveAssociated() handles expression objects correctly now.
  • Model::setSource() does not alter the datasource's cacheSources property anymore.
  • Non-breaking spaces are now removed by Inflector::slug()

You can view the full changelog on cakephp.org[1]. I'd like to thank the people who have contributed to this release. Your bug tickets, documentation edits, and patches/pull requests are a big part of what keeps CakePHP alive and ticking. Download a packaged release on github[2].

Links

CakePHP 2.4.2 released

23 Oct 01:51
2.4.2
Compare
Choose a tag to compare

The CakePHP core team is proud to announce the immediate availability of CakePHP 2.4.2[1]. 2.4.2 is a bugfix release for the 2.4 release branch. A short list of the changes you can expect is:

  • Sqlite::truncate() will verify that the sqlite_sequence table exists before modifying it.
  • Label elements now have their for attributes generated correctly for radio inputs.
  • Improved API documentation for a number of classes and methods.
  • TreeBehavior::recover() now correctly uses the scope conditions.
  • Hash::contains() can now look for needle values containing nulls.
  • Disabled radio buttons are now generated correctly when integer and string keys are used.
  • International domains are now accepted by Validation::url()
  • Inflector now handles 'quota' and 'curves' correctly.
  • jQueryEngineHelper now treats the 'xhr' option as a callback argument.
  • Bake now adds the numeric validator for float fields.
  • DboSource::renderStatement() now trims whitespace from generated queries.

As always, a big thank you to everyone involved in both contributions through commits, tickets, documentation edits, and those whom have otherwise contributed to the framework. Without you there would be no CakePHP. Download a packaged release [2].

Links

CakePHP 2.4.1 released

15 Sep 02:12
2.4.1
Compare
Choose a tag to compare

The CakePHP core team is proud to announce the immediate availability of CakePHP 2.4.1[1]. 2.4.1 is a bugfix release for the 2.4 release branch. A short list of the changes you can expect is:

  • Improved API documentation and links to the book from the API.
  • Notice errors when loading LC_TIME files should no longer happen.
  • TreeBehavior::generateTreeList() now includes the scope defined in the model's actsAs property.
  • Support for readline was added to Shell commands. If your environment supports readline, arrow keys will no longer output escape sequences.
  • FormHelper::input() will now use attributes defined in the label key.
  • Inflection support was improved.
  • Performance of CakeTime::timeAgoInWords() was improved.
  • Method signatures of Behavior callbacks was corrected. If you are using PHP5.4 you may have to update the method signatures of your behaviors to resolve any E_STRICT errors.
  • CROSS JOINs work correctly now.
  • SqlServer::value() now correctly handles NULL values.
  • Cache::clearGroup() with FileEngine and no prefix behaves as expected now.
  • CakeEmail now quotes email aliases that contain non-alphanumeric characters, that have not already been encoded.
  • Phone number validation was simplified to fix valid area codes being detected as invalid.

Security disclosure

In 2.3.8 a security issue in AssetDispatcher was fixed. In the spirit of being open and transparent a more detailed description of the issue is being provided. By carefully crafting a URL the AssetDispatcher would allow arbitrary file access. A successful attack required at least one theme or plugin to be in use. An example url would look like:

http://example.com/DebugKit/%2e.//%2e.//%2e.//%2e.//%2e.//%2e.//%2e.//%2e.//%2e.//%2e.//%2e.//%2e.//%2e./etc/passwd

AssetDispatcher incorrectly checked for directory traversal before decoding the URL. We'd like to thank Takeshi Terada of Mitsui Bussan Secure Directions, Inc for notifying us of the issue.

As always, a big thank you to everyone involved in both contributions through commits, tickets, documentation edits, and those whom have otherwise contributed to the framework. Without you there would be no CakePHP. Download a packaged release [2].

Links

CakePHP 2.4.0 is ready

30 Aug 20:04
2.4.0
Compare
Choose a tag to compare

The CakePHP core team is proud to announce the immediate availability of CakePHP 2.4.0 and 2.3.10[1]. There have been a few small improvements and fixes since the release of 2.4.0-RC2.

CakePHP 2.4.0

CakePHP 2.4.0 is now marked as stable. It is a new version in the 2.x series that is API compatible with other releases in the 2.x series. Make sure you read the migration guide [2] before upgrading as there are a few changes you may need to make.

A quick overview of the changes in 2.4 are:

  • The constants IMAGES_URL, JS_URL, CSS_URL have been deprecated and replaced with config variables App.imageBaseUrl, App.jsBaseUrl, App.cssBaseUrl respectively. Each of the deprecated constants will be removed in 3.0.
  • The CAKEPHP_SHELL constant has been deprecated and will be removed in 3.0.
  • Sanitize class has been deprecated and will be removed in 3.0.
  • FileLogs can now have a max size and simple rotation configured.
  • Logging now support syslog out of the box.
  • A number of locales have been renamed.
  • JSONP support has been added to the JsonView
  • You can disable updating counterCache values with the counterCache option when saving models.
  • Password hashing has been extracted into a set of PasswordHasher classes. These classes make changing out password hashing strategies for the various authentication adapters simple.
  • Stateless authentication has been improved.

For a full list of the changes and improvements you should review the 2.4 Migration guide [2].

Changes to 2.4.0 since 2.4.0-RC2

  • confirm handlers are now correctly encoded.
  • Helpers are now loaded during View construction. This ensures that helpers are always available.
  • View blocks can now operate on any object that can be converted to a string.
  • All changes detailed in the 2.3.10 changelogs are also included with 2.4.0

CakePHP 2.3.10

2.3.10 marks the end of normal bug fix releases for 2.3.x. Security fixes will continue to be released for 2.3.x until 2.6.0. The following is a short list of issues fixed and changes you can find in 2.3.10

  • Configuration values are now merged between Emails and their transports.
  • CakeTime::timeAgoInWords() now uses 'about X ago' when the time delta is lower than accuracy.
  • DbAcl now uses INNER joins instead of LEFT joins. This yields improved performance with some database vendors.
  • CakeEmail::template() can now disable the layout as documented.
  • Number formatting in locales that use ',' for a decimal separator is now correct.
  • RedirectRoute now honors the 'persist' parameter correctly.
  • Constants are now conditionally defined in ShellDispatcher.
  • session.auto_start is no longer set as it never worked and triggers errors in PHP 5.5.
  • Sqlite now generates schema correctly when BIGINT columns are used as a primary key.
  • FileCache now removes special characters that would cause issues on windows systems.
  • i18n shell now correctly extracts categories other than LC_MESSAGES.

Development continues to progress on 3.0 with pull requests being frequently opened. Work has also begun on 2.5, another API compatible release in the 2.x line of releases. A huge thanks to all involved in terms of both contributions through commits, tickets, documentation edits, and those whom have otherwise contributed to the framework. Without you there would be no CakePHP. Download a packaged release [3].

Links

CakePHP 2.3.10 released

30 Aug 20:06
2.3.10
Compare
Choose a tag to compare

The CakePHP core team is proud to announce the immediate availability of 2.3.10[1].

2.3.10 marks the end of normal bug fix releases for 2.3.x. Security fixes will continue to be released for 2.3.x until 2.6.0. The following is a short list of issues fixed and changes you can find in 2.3.10

  • Configuration values are now merged between Emails and their transports.
  • CakeTime::timeAgoInWords() now uses 'about X ago' when the time delta is lower than accuracy.
  • DbAcl now uses INNER joins instead of LEFT joins. This yields improved performance with some database vendors.
  • CakeEmail::template() can now disable the layout as documented.
  • Number formatting in locales that use ',' for a decimal separator is now correct.
  • RedirectRoute now honors the 'persist' parameter correctly.
  • Constants are now conditionally defined in ShellDispatcher.
  • session.auto_start is no longer set as it never worked and triggers errors in PHP 5.5.
  • Sqlite now generates schema correctly when BIGINT columns are used as a primary key.
  • FileCache now removes special characters that would cause issues on windows systems.
  • i18n shell now correctly extracts categories other than LC_MESSAGES.

Development continues to progress on 3.0 with pull requests being frequently opened. Work has also begun on 2.5, another API compatible release in the 2.x line of releases. A huge thanks to all involved in terms of both contributions through commits, tickets, documentation edits, and those whom have otherwise contributed to the framework. Without you there would be no CakePHP. Download a packaged release [2].

Links

CakePHP 2.4.0-RC2 released

25 Aug 02:09
2.4.0-RC2
Compare
Choose a tag to compare
Pre-release

The CakePHP core team is happy to announce the immediate availability of the second release candidate for 2.4.0[1].

CakeFest 2013[2] is just around the corner. If you haven't already bought your ticket do it now. It will be a great time to learn way beyond just CakePHP, this year we feature talks about performance, the future of PHP and modern javascript frontend frameworks. The core team is making great strides for having a new stable version for CakeFest and workshops will be based off the great new features next release is included.

A short list of changes you can expect in 2.4.0-RC2 are:

  • Config data between Email and Transport classes now merges correctly.
  • CakeTime::timeAgoInWords() uses fuzzy terms when time is below thresholds.
  • Confirm values are now correctly encoded. This was a regression introduced in 2.4.0-RC1.
  • DbAcl uses INNER joins instead of LEFT joins to help increase performance.
  • CakeEmail::template() can now disable rendering the layout as documented.
  • Formatting number in european locales now works correctly.
  • Translation strings were updated to exclude non-translable content.
  • RedirectRoute now persists parameters using the same methods as normal routes.
  • Components with settings are now mocked better.

A huge thanks to all involved in terms of both contributions through commits, tickets, documentation edits, and those whom have otherwise contributed to the framework. Without you there would be no CakePHP. Download a packaged release [3].

Links

CakePHP 2.4.0-RC1 released

12 Aug 05:37
Compare
Choose a tag to compare
Pre-release

The CakePHP core team is happy to announce the immediate availability of the first release candidate for 2.4.0[1].

As the date for CakeFest 2013[2] comes closer, you should be thinking on buying a ticket if haven't already. It will be a great time to learn way beyond just CakePHP, this year we feature talks about performance, the future of PHP and modern javascript frontend frameworks. The core team is making great strides for having a new stable version for CakeFest and workshops will be based off the great new features next release is including.

A short list of changes you can expect in 2.4.0-RC1 are:

  • Support for query parameters on Router::parse()
  • Add option to send email attachment from string in CakeEmail
  • Allow variable aliasing when using _serialize for the JsonView and XmlView. It also support pretty printing when available
  • Improving phone validation for USA and Canada
  • New option to multiply decimal percentages in CakeNumber::toPercentage()
  • Ability to provide custom strings for timeAgoInWords()
  • Minutes display with FormHelper can now be rounded to the next or previous custom value
  • PaginatorHelper won't display the first page argument for the first page, to avoid duplication on search engines
  • Added CakeResponse::location() to quickly send redirect status codes and location
  • Ability to set multiple headers at once with CakeRespose::header()
  • Improved handling of response codes to avoid sending invalid HTTP responses
  • Added SSL support to MySQL PDO connections
  • IMAGES_URL, CSS_URL, JS_URL are now deprecated and can be controlled with a new Configure value
  • ConsoleShell was also deprecated
  • Support for setting full URLs in css/js/image constants and configure values
  • CakeTestCase::getMockForModel() is now smarted and can mock AppModel
  • Deprecated DEFAULT_LANGUAGE constant
  • Deprecated Sanitize class
  • Missing directories under tmp used for logging and caching are now created automatically in debug mode

A huge thanks to all involved in terms of both contributions through commits, tickets, documentation edits, and those whom have otherwise contributed to the framework. Without you there would be no CakePHP.

Links