CakePHP 3.0.0-dev3 发布
3.0 版本的新开发预览版新鲜出炉!
CakePHP 核心团队自豪地宣布 CakePHP 3.0.0 的第三个开发预览版。在 3.0.0-dev2 和此版本发布之间的几个月里,我们一直在努力将我们想要引入框架的剩余新功能的大部分内容加入进来。
我们已经决定不再发布 3.0.0-dev4 版本,因为为它计划的所有内容都已经完成。这意味着下一个版本将是“alpha 版”,团队将主要集中在完善当前功能、文档以及移植一些 2.x 插件。我们对已经取得的进展以及 3.0 的发展速度感到非常满意。
此外,团队花了大量时间将所有社区反馈整合到新的 ORM 中,我们对很多人投入时间使它更加全面和易于使用感到非常谦卑。
此版本还附带了新功能和更改的完整文档,请务必查看新的 CakePHP 3.0 手册,详细了解这些内容。
以下是包含在 3.0.0-dev3 中的新功能和更改的列表
控制台改进
- 添加了新的 ConsoleIO 类。它是一个包含 Shell 中输入/输出常用方法的便捷类。
- 控制台方法将接收传递的参数作为函数参数,就像控制器操作一样。
- 现在需要为任务添加子命令。
- 可以为任何 Shell 命令添加别名,例如,可以执行 `Console/cakebmodel`,而不是 `Console/cakebakemodel`。
视图单元
视图单元是小型类,提供类似控制器的功能,但可以直接在视图中使用,从任何源拉取数据并渲染特定模板。 了解有关视图单元的更多信息
新时间库
时间类已完全重新实现,以在内部使用 Carbon。Carbon 库和 `DateTime` 能做的事情,新的时间库也能做。这意味着 `Time` 中的方法不再是静态的,您需要一个对象实例才能访问其方法。
除了添加新的时间类之外,它还与 ORM 集成,这意味着实体中的任何时间戳/日期时间列都将能够利用 CakeUtilityTime 提供的功能。
最后,时间库使用 `intl` php 扩展来提供可靠的区域感知日期格式,这比我们在 2.x 版本中提供的支持要好得多。
Bake
Bake 最终在 CakePHP 3.0 中重新开始工作,但它也带来了大量很棒的新功能
- Bake 现在可以插入!您可以创建自己的 Bake 任务,并且会自动发现它们。这意味着您现在可以实现自己的 `Console/cakebakesuper_table`
- 能够烘焙 Shell、单元、组件、行为等等
此外,我们还添加了一些其他更改
- Microsoft SQL Server 支持已添加到新的 ORM 中
- TreeBehavior 已重新实现,并提供了与其 2.x 版本中的先前版本相同的功能
- 行为和组件现在都有一个 `config()` 方法,使用公共属性的配置已被删除
- ORM 中的多个错误修复
- `Collection::nest()` 和 `Collection::listNested()` 已添加用于处理分层数据
- `Validator::notEmpty()` 已添加作为 `Validator::allowEmpty()` 的补充
- 将异常文件移动到它们对应的命名空间
- 简化了视图对象的构造,它们不再依赖于控制器
- `Request::isMobile` 现在使用外部库来正确匹配不断增加的移动设备数量
社区插件
有些人也很忙,努力跟上 3.0 分支每天引入的更改。我们想提及 CRUD 插件,它包含动态脚手架和自动管理员生成器。这可能是快速进入 CakePHP 3.0 的绝佳方式。
Dereuromark 的 Tools 插件 似乎有一些有趣的活动,提供了一些可用于 CakePHP 3.0 的优秀行为。
接下来
我们的下一个版本将标记为 alpha 版,我们将专注于以下内容
- 使会话对象在请求对象内部运行。它将不再是静态的
- 实现新的中间件层
- 作为插件实现的主题
- CookieComponent 重构。
- 彻底改造 i18n 以使用 intl 并添加对 i18n 引擎的支持
我们感谢所有迄今为止为 3.0 提供想法、代码、文档或反馈的人。看起来它将成为最重要和功能最丰富的版本,因为它被标记为稳定版!