CakePHP 2.5.5 和 2.6.0-beta 版本发布

CakePHP 核心团队很高兴宣布 CakePHP 2.5.5 和 2.6.0-beta 版本现已发布。

CakePHP 核心团队很高兴宣布 CakePHP 2.5.52.6.0-beta 版本现已发布。2.5.5 版本是 2.5 版本系列的 bug 修复版本,而 2.6.0-beta 版本是即将发布的 2.6.0 版本的测试版。2.5.5 版本中预计的变更列表如下:

  • 如果不存在 TTY,控制台应用程序将不会输出颜色。
  • 当使用 SKIP 标志时,Folder::copy() 不会覆盖文件。
  • Hash::insert()Hash::get() 现在可以处理 0 作为第一个路径元素。
  • 改进的 API 文档。
  • 修复了 Hash::remove() 可能会错误地删除数据的情况。
  • UUID 列现在可以被 postgres 正确地反映。
  • CakeEmail::reset() 现在重置电子邮件模式。
  • Hash::expand()Hash::merge() 现在快得多。

2.6 版本中的新功能

与所有其他 2.x 版本一样,2.6.0 版本将与之前的 CakePHP 2.x 版本向后兼容,并包含许多新的增强功能和改进。您可以在 2.6.0 版本中期待以下内容:

  • stackTrace() 作为 Debugger::trace() 的便捷包装函数被添加。它直接回显,就像 debug() 一样。但前提是调试级别已打开。
  • ConsoleOptionParser::removeSubcommand() 被添加。
  • Shell::overwrite() 被添加,允许生成进度条或通过替换已输出到屏幕的文本来避免输出过多行。
  • 当使用 AclBehavior 时,模型的 parentNode() 方法现在将类型(Aro、Aco)作为第一个参数传递:$model->parentNode($type).
  • 使用 MySQL 的模式迁移现在支持在添加列时使用 after 键。此键允许您指定应在哪个列之后添加新列。
  • Model::save() 从 3.0 版本移植了 atomic 选项。
  • CakeRequest::param() 现在可以使用 :ref: hash-path-syntax(如 data())读取值。
  • CakeRequest:setInput() 被添加。
  • HttpSocket::head() 被添加。
  • 现在可以使用 protocol 选项来覆盖在进行请求时使用的特定协议。
  • CakeTime::timeAgoInWords() 现在支持 strftime() 兼容的绝对日期格式。这有助于使本地化格式化的时间更容易。
  • CakeTime::timeAgoInWords() 现在支持 relativeStringFuture 选项。此选项是用于输出未来相对时间日期格式的 printf 兼容字符串。这有助于使本地化格式化的时间更容易。
  • Hash::get() 现在在路径参数无效时抛出异常。
  • Hash::nest() 现在在嵌套操作导致无数据时抛出异常。
  • HtmlHelper::css() 添加了 once 选项。它的工作方式与 HtmlHelper::script()once 选项相同。默认值为 false 以保持向后兼容性。
  • 根据 HTML 规范,maxlength 属性现在也适用于 textarea,当相应的数据库字段类型为 varchar 时。
  • 添加了新的 i18n 函数。这些新函数允许您包含消息上下文,这可以让您消除可能令人困惑的消息字符串的歧义。例如,“read” 在英语中可以根据上下文有不同的含义。新的 __x__xn__dx__dxn__dxc__dxcn__xc 函数提供了对新功能的访问。

Model 类中的一个长期存在的问题已被修复。因为它可能会被解释为 API 变更,所以有一个标志可以恢复原始行为。

  • Model::afterFind() 现在始终使用一致的格式进行 afterFind()。当 $primary 为 false 时,结果将始终位于 $data[0][‘ModelName’] 下。您可以将 useConsistentAfterFind 属性设置为模型上的 false 以恢复原始行为。

除了新功能外,还有一些功能已被弃用,将在 CakePHP 3.0.0 版本中删除。

  • Validation::between 已被弃用,您应该使用 Validation::lengthBetween 代替。
  • Validation::ssn 已被弃用,并且可能会作为独立/插件解决方案提供。
  • HtmlHelper::link()$confirmMessage 参数已弃用。您应该改为在 $options 中使用 confirm 键来指定消息。
  • FormHelper::postLink()$confirmMessage 参数已弃用。您应该改为在 $options 中使用 confirm 键来指定消息。

如果测试版没有报告任何重大问题,您可以在大约 1 个月内期待发布候选版本,并在之后不久发布稳定版本。

对所有参与者表示衷心的感谢,包括通过提交、工单、文档编辑以及其他方式为框架做出贡献的人。