CakePHP 2.2.0-RC2

CakePHP 团队很荣幸地宣布 CakePHP 2.2.0-RC2 现已正式发布,这是该分支的最终候选版本。

虽然比预期晚了些,但 CakePHP 2.2.0-RC2 终于带着新的功能和稳定性问世,在正式发布前进行最后的测试。正如之前版本中提到的,2.2.x 版本与 2.0.x 和 2.1.x 版本在 API 兼容,升级过程中通常是透明的,除了在配置文件中需要进行一些调整。

我们在这份版本中新增了一些功能,因为我们认为这些功能对社区来说是安全且实用的。以下列出 2.2.0-RC2 新增的功能:

验证

验证类新增了几个方法:naturalNumberuploadErrormimeType。自然数验证适用于需要对数字进行验证,但仅限于非负数的情况。上传相关方法的增加是为了让模型更容易正确验证上传的文件,特别是 mimeType 方法将验证文件的正确 MIME 类型,而不依赖于文件扩展名。

Bake

对 Bake 进行了若干小改动,以改善生成测试用例和插件的体验。例如,创建新的插件会自动在 bootstrap.php 中进行配置。

CakeRequest

PUTDELETE 方法的有效负载数据现在将被放置在 $request->data 中,前提是数据编码正确。这使得控制器更容易透明地执行操作,无需针对每个方法执行显式操作。

其他改动

  • 使用文件存储会话时,现在会设置 session.gc_maxlifetime。这可以防止会话文件过早地被垃圾回收。
  • cake i18n extract 现在有了一个 –overwrite 选项,用来强制覆盖所有已有的 pot 文件。
  • App::uses() 现在更好地支持命名空间类。
  • 当 recursive > 1 时,belongsTo 和 hasOne 关联会生成更少的查询。
  • TranslateBehavior::unbindTranslation() 现在按照文档说明工作。
  • HtmlHelper::tableHeaders() 现在可以接受每个单元格的 HTML 属性。
  • 添加了 Router::setExtensions(),允许添加新的扩展,而不是替换所有现有的扩展。
  • 添加了 Security::rijndael(),并将其暴露给 CookieComponent。这使得可以使用强加密,建议所有使用加密 cookie 的应用程序使用它。
  • 数据源方法缓存现在更能抵抗冲突。
  • 使用图像的邮件模板现在更常工作正常。
  • app/Console/cake 现在在更多情况下能够正确确定应用程序目录。
  • 使用 application/www-form-urlencoded 数据的 PUT 和 DELETE 请求现在会自动解析,并作为 $this->data 设置在请求对象中。
  • 会话 cookie 现在默认情况下是 httpOnly。
  • 如果主模型的验证失败,保存/验证关联模型时会返回所有验证错误。

查看完整的变更日志 [1]。下载打包的发布版本 [2]

CakeFest 2012 即将到来,我们已经期待在最佳的 PHP 会议上进行精彩的演讲和研讨会。如果你还没有预订门票,现在正是时候了。

感谢友好的 CakePHP 社区提供补丁、文档变更和新的问题报告。没有你们,就没有 CakePHP!

链接