CakePHP 2.1.3 & 2.2.0-RC1 发布

CakePHP 核心团队很高兴宣布立即发布 CakePHP 2.1.3 [1] 和 2.2.0-RC1[2]。2.1.3 是 2.1.x 分支的 bug 修复版本,而 2.2.0-RC1 是 2.2.x 的第一个候选版本。

CakePHP 核心团队很高兴宣布立即发布 CakePHP 2.1.3 [1] 和 2.2.0-RC1[2]。2.1.3 是 2.1.x 分支的 bug 修复版本,而 2.2.0-RC1 是 2.2.x 的第一个候选版本。

CakePHP 2.1.3

2.1.3 中有一些 bug 修复,其中最值得注意的变化是

  • ControllerTestCase 在模拟请求时不再覆盖 GET/POST。
  • Xml::fromArray() 现在可以正确处理乱序的数字键。
  • TranslateBehavior 和 Model::saveAll() 现在可以正确保存 hasMany 关联中的翻译。
  • Router::queryString() 现在可以正确处理追加到现有查询字符串。
  • Model::saveMany()、saveAssociated() 可以正确保存之前在 beforeValidate() 回调中修改的数据。
  • View 现在可以正确地重复使用 Controller 事件管理器实例。
  • Model::saveAll() 和默认值现在表现得更好。

您可以从 https://pear.cakephp.org 下载打包好的版本,或者从 github[3] 获取 zip 文件。

CakePHP 2.2.0-RC1

自从 CakePHP 2.2.0-beta 发布以来,许多新特性和改进已经合并进来了

CakeTime 类中的时区支持

所有相关函数中的 $userOffset 参数已被 $timezone 参数替换。因此,您现在可以传入一个时区字符串或 DateTimeZone 对象,而不是数字偏移量。为了向后兼容,仍然可以为 $timezone 参数传入数字偏移量。

CakeTime::timeAgoInWords() 添加了精度选项。此选项允许您指定格式化时间的精度。

添加了一些新方法

  • CakeTime::toServer()
  • CakeTime::timezone()
  • CakeTime::listTimezones()

所有方法中的 $dateString 参数现在接受 DateTime 对象。有一个新的配置参数“Config.timezone”可用,您可以将其设置为用户的时区字符串。

动态修改和创建验证规则

添加了一个新对象 ModelValidator 来委托验证模型数据的工作,它应该对应用程序透明,并完全向后兼容。它还公开了一个丰富的 API 来添加、修改和删除验证规则。请查看 https://book.cakephp.com.cn/2.0/en/models/data-validation.html#dynamically-change-validation-rules 中关于此对象的文档。

动态生成配置文件

Configure::dump() 已被添加。它用于将配置数据持久化到持久性存储器中,例如文件。PhpReader 和 IniReader 都与它一起工作。

CakeLog

CakeLog 类现在接受与 RFC 5424 中定义的相同日志级别。在 CakeLog 类中也添加了一些便利方法

  • emergency
  • alert
  • critical
  • error
  • warning
  • notice
  • info
  • debug

此外,日志引擎还获得了一个 scope 设置,以使它们只记录它们感兴趣的上下文。您*需要*将以下几行添加到您的 Config/bootsrap.php 文件中

// Add logging configuration.
CakeLog::config('debug', array(
    'engine' => 'FileLog',
    'types' => array('notice', 'info', 'debug'),
    'file' => 'debug',
));
CakeLog::config('error', array(
    'engine' => 'FileLog',
    'types' => array('warning', 'error', 'critical', 'alert', 'emergency'),
    'file' => 'error',
));

其他更改

  • 添加了 FormHelper::inputDefaults() setter/getter。
  • 添加了 Auth 登录使用 contain 的能力。
  • 支持日语传统字符集,并在 CakeEmail 中将 Content-Type 行中的字符集改为大写。
  • 改进了所有函数的文档块,混合参数现在明确说明了哪些类型被接受。