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]