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