{"id":16777219,"url":"https://github.com/ansien/formtojsonbundle","last_synced_at":"2025-10-18T14:34:11.590Z","repository":{"id":143718849,"uuid":"346375736","full_name":"ansien/FormToJsonBundle","owner":"ansien","description":"Convert Symfony forms to JSON","archived":false,"fork":false,"pushed_at":"2021-03-17T19:15:19.000Z","size":143,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-24T18:11:34.790Z","etag":null,"topics":["converter","forms","json","php","symfony","symfony-bundle","symfony-forms","transformer"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ansien.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-03-10T14:03:41.000Z","updated_at":"2021-11-25T07:35:23.000Z","dependencies_parsed_at":null,"dependency_job_id":"f1645c92-efb3-47ac-9829-f640005644d7","html_url":"https://github.com/ansien/FormToJsonBundle","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansien%2FFormToJsonBundle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansien%2FFormToJsonBundle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansien%2FFormToJsonBundle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansien%2FFormToJsonBundle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ansien","download_url":"https://codeload.github.com/ansien/FormToJsonBundle/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248290070,"owners_count":21078923,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["converter","forms","json","php","symfony","symfony-bundle","symfony-forms","transformer"],"created_at":"2024-10-13T07:24:01.510Z","updated_at":"2025-10-18T14:34:11.524Z","avatar_url":"https://github.com/ansien.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FormToJsonBundle\n\n[comment]: \u003c\u003e (![GitHub Workflow Status \u0026#40;branch\u0026#41;]\u0026#40;https://img.shields.io/github/workflow/status/ansien/FormToJsonBundle/Tests/master?label=Tests\u0026logo=Tests\u0026#41;)\n[![Latest Version on Packagist](https://img.shields.io/packagist/v/ansien/form-to-json-bundle.svg)](https://packagist.org/packages/ansien/form-to-json-bundle)\n[![Total Downloads](https://img.shields.io/packagist/dt/ansien/form-to-json-bundle.svg)](https://packagist.org/packages/ansien/form-to-json-bundle)\n![GitHub](https://img.shields.io/github/license/ansien/FormToJsonBundle)\n\nThis bundle will allow you to transform Symfony forms into JSON.\n\n## Installation\nYou can install the package via Composer:\n\n```bash\ncomposer require ansien/form-to-json-bundle\n```\n\n## Usage\n\nController:\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nnamespace App\\Controller;\n\nuse Ansien\\FormToJsonBundle\\Transformer\\Service\\FormTransformerInterface;\nuse Symfony\\Bundle\\FrameworkBundle\\Controller\\AbstractController;\nuse Symfony\\Component\\HttpFoundation\\JsonResponse;\nuse Symfony\\Component\\HttpFoundation\\Request;\nuse Symfony\\Component\\Routing\\Annotation\\Route;\nuse App\\Entity\\Example;\nuse App\\Form\\ExampleType;\n\nclass ExampleController extends AbstractController\n{\n    public function __construct(private FormTransformerInterface $formTransformer) \n    {\n    }\n\n    #[Route('/example', methods: ['GET'])]\n    public function __invoke(Request $request): JsonResponse\n    {\n        $example = new Example('Hello!');\n        $form = $this-\u003ecreateForm(ExampleType::class, $example);\n        \n        return new JsonResponse($this-\u003eformTransformer-\u003etransform($form));\n    }\n}\n```\n\nExample output:\n```json\n{\n  \"schema\": {\n    \"id\": \"test\",\n    \"name\": \"test\",\n    \"type\": \"super_form\",\n    \"disabled\": false,\n    \"label\": null,\n    \"label_format\": null,\n    \"label_html\": false,\n    \"multipart\": true,\n    \"unique_block_prefix\": \"_test\",\n    \"row_attr\": [],\n    \"translation_domain\": null,\n    \"label_translation_parameters\": [],\n    \"attr_translation_parameters\": [],\n    \"valid\": true,\n    \"required\": true,\n    \"size\": null,\n    \"label_attr\": [],\n    \"help\": null,\n    \"help_attr\": [],\n    \"help_html\": false,\n    \"help_translation_parameters\": [],\n    \"compound\": true,\n    \"method\": \"POST\",\n    \"action\": \"\",\n    \"submitted\": false,\n    \"attr\": [],\n    \"children\": {\n      \"text\": {\n        \"id\": \"test_text\",\n        \"name\": \"text\",\n        \"type\": \"text\",\n        \"disabled\": false,\n        \"label\": null,\n        \"label_format\": null,\n        \"label_html\": false,\n        \"multipart\": false,\n        \"unique_block_prefix\": \"_test_text\",\n        \"row_attr\": [],\n        \"translation_domain\": null,\n        \"label_translation_parameters\": [],\n        \"attr_translation_parameters\": [],\n        \"valid\": true,\n        \"required\": true,\n        \"size\": null,\n        \"label_attr\": [],\n        \"help\": null,\n        \"help_attr\": [],\n        \"help_html\": false,\n        \"help_translation_parameters\": [],\n        \"compound\": false,\n        \"method\": \"POST\",\n        \"action\": \"\",\n        \"submitted\": false,\n        \"attr\": []\n      }\n    }\n  },\n  \"values\": {\n    \"text\": \"Test 123\"\n  },\n  \"errors\": {\n    \"_global\": [\n      \"Test root error\"\n    ],\n    \"text\": [\n      \"Test error\"\n    ]\n  }\n}\n```\n\n## Extending the bundle\nYou can create your own form type transformer by making a new service that extends AbstractTypeTransformer and tagging it with `form_to_json_bundle.type_transformer`.\n\n## Changelog\nPlease see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.\n\n## Contributing\nPlease see [CONTRIBUTING](.github/CONTRIBUTING.md) for details.\n\n## Supporters\n[![Stargazers repo roster for @ansien/FormToJsonBundle](https://reporoster.com/stars/ansien/FormToJsonBundle)](https://github.com/ansien/FormToJsonBundle/stargazers)\n\n## Credits\n- [Andries](https://github.com/ansien)\n- [Limenius](https://github.com/Limenius)\n- [All Contributors](../../contributors)\n\n## License\n\nThe MIT License (MIT). Please see [License File](LICENSE.md) for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fansien%2Fformtojsonbundle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fansien%2Fformtojsonbundle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fansien%2Fformtojsonbundle/lists"}