CakePHP 3.0.0-beta2 发布
在我们第一个 beta 版本发布一个月后,我们准备发布下一批功能。
CakePHP 核心团队很荣幸地宣布 CakePHP 3.0.0 的第二个 beta 版本。自从第一个 beta 版本发布以来已经过去了一个月,我们对社区对新版本的大力欢迎感到兴奋。所有积极的反馈和帮助都极大地激励了核心团队,让我们更加努力地改善 3.0 的开发者体验。
这将是 3.0 的最后一个 beta 版本,这意味着 API 已经稳定,我们主要集中在完善当前功能,性能优化,文档以及快速解决 Github 中报告的任何问题。
我们过去一个月一直在忙于实现路线图中的一些遗漏功能,并升级了一些 CakePHP 的流行插件。
以下是 3.0.0-beta2 中的新功能和更改列表
DebugKit
调试 CakePHP 3.0 应用程序变得更加轻松。新的 DebugKit 更易于安装,速度更快,而且外观精美。
DebugKit 是一个应用程序工具栏,它收集有关代码的有用统计信息,例如时间和内存,执行的查询,日志消息和视图变量。要安装 Debugkit,只需使用
`
composerrequirecakephp/debug_kit"3.0.*-dev"
`
并将此行添加到您的 bootstrap.php 文件中
Plugin::load('DebugKit', ['bootstrap' => true]);
如果您使用 app 骨架 安装新的应用程序,DebugKit 将会自动为您安装。
数据库迁移
迁移 现在是官方的 CakePHP 插件。它将出色的 Phinx 库封装到 CakePHP shell 中,以避免重复配置字符串并添加一些 Cake 体验。此插件生成的数据库迁移将如下所示
<?php
use Phinx\Migration\AbstractMigration;
class CreateUsersTable extends AbstractMigration {
/**
* Change.
*/
public function change() {
// create the table
$table = $this->table('users');
$table->addColumn('id', 'integer')
->addColumn('username', 'string')
->addColumn('password', 'string')
->addColumn('created', 'datetime')
->create();
}
迁移是可逆的。这意味着使用相同的代码,您可以创建或回滚对数据库模式所做的更改。
要安装迁移插件,请运行
`
composerrequirecakephp/migrations"dev-master"
`
并将此行添加到您的 bootstrap.php 文件中
Plugin::load('Migrations');
新的 Logger 接口
CakePHP 已经采用了 PSR-3 的日志记录推荐。现在所有日志引擎都实现了 ` PrsLogLoggerInterface` 接口。这意味着整个日志系统可以很容易地被其他实现所取代,例如流行的 Monolog 库.
集成测试和数据完整性
测试控制器一直是一个问题。虽然 ControllerTestCase 解决了一些问题,但我们发现这个类是用户遇到问题和困惑的根源。我们决定实现新的 IntegrationTestCase 类,作为一种方法来测试应用程序中 HTTP 请求的所有方面,而无需进行大量模拟。这将有助于您提高代码质量,并确保您的应用程序和路由按预期工作。
我们还改进了 fixture 系统,允许开发者在他们的数据库中定义和使用外键约束。fixture 系统现在将正确加载所有数据,并在您的测试代码执行之前启用约束。
新的 Bake 模板
随着稳定版本发布日期越来越近,我们决定给默认的 baked 应用程序一个新的外观。希望新的外观感觉更清新,更现代,更易于使用。
独立包
我们看到了越来越多的兴趣,希望在框架之外或在旧的 CakePHP 应用程序中使用新的 ORM。我们从一开始的目标之一就是让这成为可能。我们已经开始将框架拆分为各种独立的组件,这些组件可以与 composer 一起重复使用和安装。虽然 ORM 尚未提取到它自己的存储库中,但大多数必要的先决条件已经完成。作为这项工作的产物,我们已经从主代码库中提取了一些组件
- 集合:提供一组工具,以高效而优雅的方式操作数组或可遍历对象。
- 验证:出色且灵活的验证库现在可以在任何项目中使用!
- 实用程序:提供 Hash,Inflector,String 和 Xml 类。
- 事件:我们的信号槽(或观察者模式)实现。
- 核心:CakePHP 核心,包含配置和插件管理类。
需要注意的是,这些存储库是只读的,开发将在主 CakePHP 存储库中继续进行,代码将定期同步到这些拆分中。请在 主 Github 存储库 中直接打开任何票证或拉取请求。
插件 Shell
插件中的 Shell 现在可以在不使用插件名称作为前缀的情况下调用。例如,对于位于 Tools 插件中的 do_stuff shell,您可以执行
`
bin/cakedo_stuff
`
其他改进
- 新的 uploadedFile 验证规则。
- 使 String::uuid() 的速度提高了三倍。
- 对致命错误的异常报告进行了改进。
- 对 Inflector 进行了优化,以提高性能。
- 对 Hash 类进行了多项优化。
- 添加了 Collection::buffered(),用于将不可回绕的迭代器转换为可回绕的迭代器。
社区插件
更多针对 3.0 版本的插件开始出现。以下是我们认为有趣的插件列表
- TwigView 使用 Twig 作为默认的模板引擎。
- Imagine 图片处理插件
- Geo 包含用于处理地理数据的实用程序库和行为。
- Blame 记录修改数据库行中行的用户 ID。
- CakePdf 使用不同的引擎生成 PDF 文件
- Authenticate 授权和身份验证适配器
- TinyAuth 一个轻量级的授权系统。
- TwitterBootstrap 一个用于生成 Bootstraped 接口的插件
- Whoops 使用一个漂亮的调试界面替换默认的异常渲染器。
- Assetic 缩小和预处理 CSS 和 Javascript。再次感谢所有为 3.0 做出贡献的人,包括想法、代码、文档或反馈。
下载发布版本
您可以在此处获取打包的发布版本:cakephp-3-0-0-beta2.zip