wol-soft / php-json-schema-model-generator-symfony-converter
为使用 wol-soft/php-json-schema-model-generator 库生成的模型提供 symfony 转换器
Requires
- php: >=7.2
- ext-json: *
- sensio/framework-extra-bundle: ^4.4 | ^5.1
- symfony/http-kernel: ^4.4 | ^5.1
- symfony/yaml: ^4.4 | ^5.1
- wol-soft/php-json-schema-model-generator-production: *
Requires (Dev)
- phpunit/phpunit: ^8.5 | ^9.4
- symfony/browser-kit: ^4.4 | ^5.1
- symfony/error-handler: ^4.4 | ^5.1
- wol-soft/php-json-schema-model-generator: > 0.13.0
This package is auto-updated.
Last update: 2024-09-18 19:23:42 UTC
README
php-json-schema-model-generator-symfony-converter
为使用 wol-soft/php-json-schema-model-generator 库生成的模型提供 symfony 转换器。
要求
- 需要至少 PHP 7.2
- 需要 PHP 扩展 ext-json
- 需要 Symfony
安装
推荐通过 Composer 安装 php-json-schema-model-generator-symfony-converter
$ composer require wol-soft/php-json-schema-model-generator-symfony-converter
用法
要将使用 wol-soft/php-json-schema-model-generator 库生成的模型集成到 symfony 项目中,请确保已将 PHPModelGeneratorBundle
和 SensioFrameworkExtraBundle
添加到您的包配置中(例如,config/bundles.php
)
<?php return [ Symfony\Bundle\FrameworkBundle\FrameworkBundle::class => ['all' => true], Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle::class => ['all' => true], PHPModelGenerator\Bundle\PHPModelGeneratorBundle::class => ['all' => true], ];
另外,请确保已启用转换器,例如,通过创建一个 config/packages/sensio_framework_extra.yaml
配置文件
sensio_framework_extra: request: converters: true auto_convert: true
现在,您只需在控制器操作中使用生成的模型即可。模型将通过利用请求体作为数据输入自动实例化。如果发送了无效的请求体并且验证失败,则将抛出异常。注册异常监听器并将异常转换为可行的响应。有关运行示例,您可以查看此库测试中的演示应用程序。它包括一个 JSON 模式(tests\App\Schema\person.json
)、生成步骤(tests\bootstrap.php
)、异常处理器(tests\App\Event\ExceptionListener.php
)和利用生成的模型的控制(tests\App\Controller\PersonController
)。
测试
该库通过 PHPUnit 进行测试。
通过 composer update
安装库的依赖项后,您可以使用 ./vendor/bin/phpunit
(Linux)或 vendor\bin\phpunit.bat
(Windows)执行测试。测试名称已针对 --testdox
输出进行了优化。