CakePHP 2.3.0-beta 发布

此版本包含几个新功能,这些功能提高了 CakePHP 的性能、安全性以及易用性。

CakePHP 核心团队很高兴宣布 CakePHP 2.3.0-beta[1] 立即可用。此版本包含几个新功能,这些功能提高了 CakePHP 的性能、安全性以及易用性。完成后,这个新版本将取代 2.2.x 分支,并将完全向后兼容。书籍 [2] 中提供了迁移指南,如果您从旧版本升级,我们建议您阅读它。

您可以期待的一些更改简要列出如下

常量

  • 应用程序现在可以轻松地定义 CACHE 和 LOGS,因为它们现在由 CakePHP 有条件地定义

缓存

  • FileEngine 始终是默认缓存引擎。过去,许多人难以在 cli + web 中正确设置和部署 APC。使用文件应该使新开发人员更轻松地设置 CakePHP。

组件

AuthComponent

  • 添加了一个新的身份验证适配器来支持 blowfish/bcrypt 哈希密码。您现在可以在 $authenticate 数组中使用 Blowfish 来允许使用 bcrypt 密码。
  • 允许在未经授权的访问尝试时抛出异常而不是重定向,这由 AuthComponent 中的一个新选项控制。当您想要阻止对使用无状态身份验证的用户进行访问时,这很有用。

PaginatorComponent

  • PaginatorComponent 现在支持 findType 选项。这可用于指定要用于分页的查找方法。这比第 0 个索引更容易管理和设置。

SecurityComponent

  • SecurityComponent 现在支持 unlockedActions 选项。这可用于禁用对该选项中列出的任何操作的所有安全检查。

RequestHandlerComponent

  • 添加了 RequestHandlerComponent::viewClassMap(),用于将内容类型映射到视图类名。您可以添加 $settings[‘viewClassMap’],以根据扩展名/内容类型自动设置正确的 viewClass。

CookieComponent

  • 添加了 CookieComponent::check()。此方法的工作方式与 CakeSession::check() 相同。

控制台

  • 添加了服务器 shell。您可以使用它为您的 CakePHP 应用程序启动 PHP5.4 web 服务器。
  • 烘焙新项目现在将应用程序的缓存前缀设置为应用程序的名称。
  • 将符号链接解析添加到 app/Console/cake

I18n

  • nld 现在是荷兰语的默认语言环境,如 ISO 639-3 规范所示,dut 是它的别名。语言环境文件夹必须相应地调整(从 /Locale/dut/ 到 /Locale/nld/)。
  • 阿尔巴尼亚语现在是 sqi,巴斯克语现在是 eus,汉语现在是 zho,藏语现在是 bod,捷克语现在是 ces,波斯语现在是 fas,法语现在是 fra,冰岛语现在是 isl,马其顿语现在是 mkd,马来语现在是 msa,罗马尼亚语现在是 ron,塞尔维亚语现在是 srp,斯洛伐克语现在是 slk。相应的语言环境文件夹也需要调整。
  • 更正了验证规则中一些内部字符串的域翻译的用法。
  • 现在,所有翻译函数都可以通过首先声明函数来覆盖。

配置

  • 添加了 Configure::check()。此方法的工作方式与 CakeSession::check() 相同。

异常

  • 添加了 CakeBaseException,所有核心异常现在都扩展了它。
  • 基本异常类还引入了 responseHeader() 方法,该方法可以在创建的异常实例上调用以添加响应的标头,因为异常响应不重用任何响应实例。

模型

  • 所有核心数据源和固定装置都添加了对 biginteger 类型的支持。
  • 为 MySQL 驱动程序添加了对 FULLTEXT 索引的支持。
  • Model::find(‘list’) 现在根据最大包含深度或递归值设置递归。当 find(‘list’) 与 ContainableBehavior 一起使用时。
  • 添加了 DboSource::resetSequence()。这允许数据源重置表中的序列值。这对像 Postgres 这样的数据源很有用,并且使用固定装置更容易。
  • DboSource::getLog() 现在将显示最后 200 个查询,而不是前 200 个查询。

验证

  • 缺少的验证方法现在将始终触发错误,而不是仅在开发模式下触发错误。
  • 添加了 CakeNumber::fromReadableSize() 和 Validation::filesize()

网络

  • 在 CakeSocket 类中添加了 enableCrypto() 方法
  • 为 SMTP 连接添加了 TLS/SSL 支持。

CakeRequest

  • 添加了 CakeRequest::onlyAllow()。
  • 添加了 CakeRequest::query(),可以使用点表示法访问查询字符串中的变量。

CakeResponse

  • 添加了 CakeResponse::file()。这弃用了 MediaView。
  • 在实例化 CakeResponse 时,它默认会将其字符集设置为 App.encoding

CakeEmail

  • 在 CakeEmail::attachments() 中添加了 contentDisposition 选项。这允许您禁用添加到附件文件的 Content-Disposition 标头。

路由器

  • 对 tel:, sms: 的支持已添加到 Router::url() 中。
  • 启用点表示法来传递路由类参数的插件
  • 路由尽可能晚地加载。因此,路由默认情况下也将在 cli 中工作。

视图

  • MediaView 已弃用,您可以使用 CakeResponse 中的新功能来实现相同的结果。
  • Json 和 Xml 视图中的序列化已移至 _serialize()
  • 当使用视图模板时,beforeRender 和 afterRender 回调现在在 Json 和 Xml 视图中被调用。
  • View::fetch() 现在有一个 $default 参数。此参数可用于在块为空时提供默认值。
  • 添加了 View::prepend(),允许将内容预先添加到现有块中。

帮助器

FormHelper

  • FormHelper::select() 现在接受 disabled 属性中的一系列值。与 ‘multiple’ => ‘checkbox’ 结合使用,这允许您提供要禁用的值的列表。
  • FormHelper::postLink() 现在接受一个 method 键。这允许您使用除 POST 之外的 HTTP 方法创建链接表单。
  • 修复了多个复选框的 disabled 属性
  • FormHelper 创建的隐藏 div 现在可以通过使用 HtmlHelper::$tags 属性中的 hiddenblock 模板进行自定义
  • 改进了“required”字段检测。

TextHelper

  • 添加了 TextHelper::tail(),用于从末尾截断文本。
  • TextHelper::truncate() 中的 ending 选项已弃用,取而代之的是 ellipsis

PaginatorHelper

  • PaginatorHelper::numbers() 现在有一个新的选项 currentTag,用于允许指定用于包装当前页码的额外标签。

CakeNumber

  • 添加了 CakeNumber::fromReadableSize()。
  • 添加了 CakeNumber::formatDelta()。
  • 添加了 CakeNumber::defaultCurrency()。

文件夹

  • Folder::copy() 和 Folder::move() 现在支持除了跳过/覆盖之外还合并目标目录和源目录的能力。

字符串

  • 添加了 String::tail(),用于从末尾截断文本。String::truncate() 中的 ending 已弃用,取而代之的是 ellipsis

调试器

  • Debugger::exportVar() 现在在 PHP >= 5.3.0 中输出私有和受保护的属性。

安全

  • 添加了对 bcrypt 的支持。有关如何使用 bcrypt 的更多信息,请参阅 Security::hash() 文档。

衷心感谢所有参与其中的人,无论是通过提交、工单、文档编辑还是以其他方式为框架做出贡献的人。没有您,CakePHP 就不会存在。下载打包版本 [3]