dereuromark/cakephp-dto

CakePHP DTO 插件

安装次数: 60,766

依赖者: 3

建议者: 0

安全: 0

星级: 24

关注者: 5

分支: 6

开放问题: 5

类型:cakephp-plugin

2.2.1 2024-03-29 22:24 UTC

README

CI codecov Latest Stable Version Minimum PHP Version License Total Downloads Coding Standards

数据传输对象 (DTO) 是一个用于在应用程序层之间传递类型化数据的对象,在概念上类似于 C 语言中的 结构体,Martin Fowler 的 传输对象,或 值对象

此包的目标是结构化“非结构化数据”,用更易于理解的方法替换简单的(关联)数组。

  • 通过使所有字段可类型化,我们可以确保其值永远不会是我们不期望的内容。特别是随着现代 PHP 和更严格的类型提示的不断发展,这非常重要,可以早期检测和失败。
  • 我们可以拥有完整的 IDE 自动完成和类型提示。
  • 我们可以使用 PHPStan 等工具对代码进行静态分析(更严格)。
  • 在需要字段的情况下,我们可以简化逻辑,只需抛出一个有意义的异常。
  • 我们可以更轻松地处理字段名称的不同变体。
  • 使用必需字段的可变 DTO 的简单方法,以便在后续代码中信任它们。
  • 与任何可序列化的 值对象(无论是数组还是字符串)一起使用。

更多信息请参阅 动机和背景

此插件将为您提供一种工具,用于快速为特殊用例生成自定义和优化的 DTO。

此分支适用于 CakePHP 5.0+。有关详细信息,请参阅 版本映射

示例

在沙盒中的实时示例: Github 演示

有关基本、不可变和复杂实体用例的示例,请参阅 示例。这些示例生成的 DTO 位于 tests/test_app/src/Dto/

注意:默认情况下启用参数/返回类型,禁用严格类型。

安装

您可以使用 Composer 将此插件安装到您的 CakePHP 应用程序中。

composer require dereuromark/cakephp-dto

然后使用以下命令加载插件

bin/cake plugin load CakeDto

用法

有关详细信息,请参阅 文档