Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wol-soft/php-json-schema-model-generator-symfony-converter
Provides a symfony converter for models generated with the wol-soft/php-json-schema-model-generator library
https://github.com/wol-soft/php-json-schema-model-generator-symfony-converter
code-generation injection php-library php72 php73 php74 symfony symfony-bundle
Last synced: 5 days ago
JSON representation
Provides a symfony converter for models generated with the wol-soft/php-json-schema-model-generator library
- Host: GitHub
- URL: https://github.com/wol-soft/php-json-schema-model-generator-symfony-converter
- Owner: wol-soft
- License: mit
- Created: 2020-03-10T14:42:50.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2020-12-18T10:41:03.000Z (almost 4 years ago)
- Last Synced: 2024-09-25T20:03:32.171Z (8 days ago)
- Topics: code-generation, injection, php-library, php72, php73, php74, symfony, symfony-bundle
- Language: PHP
- Size: 24.4 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![Latest Version](https://img.shields.io/packagist/v/wol-soft/php-json-schema-model-generator-symfony-converter.svg)](https://packagist.org/packages/wol-soft/php-json-schema-model-generator-symfony-converter)
[![Minimum PHP Version](https://img.shields.io/badge/php-%3E%3D%207.2-8892BF.svg)](https://php.net/)
[![Maintainability](https://api.codeclimate.com/v1/badges/940cde6f65ed06b3de69/maintainability)](https://codeclimate.com/github/wol-soft/php-json-schema-model-generator-symfony-converter/maintainability)
[![Test Coverage](https://api.codeclimate.com/v1/badges/940cde6f65ed06b3de69/test_coverage)](https://codeclimate.com/github/wol-soft/php-json-schema-model-generator-symfony-converter/test_coverage)
[![Build Status](https://travis-ci.com/wol-soft/php-json-schema-model-generator-symfony-converter.svg?branch=master)](https://travis-ci.com/wol-soft/php-json-schema-model-generator-symfony-converter)
[![Coverage Status](https://coveralls.io/repos/github/wol-soft/php-json-schema-model-generator-symfony-converter/badge.svg?branch=master)](https://coveralls.io/github/wol-soft/php-json-schema-model-generator-symfony-converter?branch=master)
[![MIT License](https://img.shields.io/packagist/l/wol-soft/php-json-schema-model-generator-symfony-converter.svg)](https://github.com/wol-soft/php-json-schema-model-generator-symfony-converter/blob/master/LICENSE)# php-json-schema-model-generator-symfony-converter
Provides a symfony converter for models generated with the [wol-soft/php-json-schema-model-generator](https://github.com/wol-soft/php-json-schema-model-generator) library.
## Requirements ##
- Requires at least PHP 7.2
- Requires the PHP extensions ext-json
- Requires Symfony## Installation ##
The recommended way to install php-json-schema-model-generator-symfony-converter is through [Composer](http://getcomposer.org):
```
$ composer require wol-soft/php-json-schema-model-generator-symfony-converter
```## Usage ##
To integrate models generated with the wol-soft/php-json-schema-model-generator library into your symfony project make sure you've added the `PHPModelGeneratorBundle` and the `SensioFrameworkExtraBundle` to your bundle configuration (eg. `config/bundles.php`):
```php
['all' => true],
Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle::class => ['all' => true],
PHPModelGenerator\Bundle\PHPModelGeneratorBundle::class => ['all' => true],
];
```Additionally make sure converters are enabled eg. by creating a `config/packages/sensio_framework_extra.yaml` configuration file:
```yaml
sensio_framework_extra:
request:
converters: true
auto_convert: true
```Now all you have to do is using the generated models in your controller action. The models will be instantiated automatically by utilizing the body of the request as data input. If an invalid request body is sent and the validation fails an Exception will be thrown. Register an exception listener and convert the exception into a feasible response. For a running example you can have a look into the demo application located in the tests of this library. It includes a JSON Schema (`tests\App\Schema\person.json`), the generation step (`tests\bootstrap.php`), an exception handler (`tests\App\Event\ExceptionListener.php`) and a controller utilizing the generated model (`tests\App\Controller\PersonController`).
## Tests ##
The library is tested via [PHPUnit](https://phpunit.de/).
After installing the dependencies of the library via `composer update` you can execute the tests with `./vendor/bin/phpunit` (Linux) or `vendor\bin\phpunit.bat` (Windows). The test names are optimized for the usage of the `--testdox` output.