dereuromark / cakephp-dto
CakePHP DTO 插件
2.2.1
2024-03-29 22:24 UTC
Requires
- php: >=8.1
- ext-json: *
- cakephp/cakephp: ^5.0.3
- cakephp/twig-view: ^2.0.1
- sebastian/diff: ^5.0.0
Requires (Dev)
- ext-dom: *
- ext-libxml: *
- fig-r/psr2r-sniffer: dev-master
- nette/neon: ^2.4 || ^3.2
- phpunit/phpunit: ^10.2
Suggests
- nette/neon: If you want to add a NEON file engine instead of XML.
This package is auto-updated.
Last update: 2024-09-16 12:49:52 UTC
README
数据传输对象 (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
用法
有关详细信息,请参阅 文档。