DTO Playground
Paste JSON data and instantly see the generated DTO configuration. This helps you quickly bootstrap DTOs from API responses or existing data structures.
JSON Input
DTO Configuration
<?php
use PhpCollective\Dto\Config\Dto;
use PhpCollective\Dto\Config\Field;
use PhpCollective\Dto\Config\Schema;
return Schema::create()
->dto(Dto::create('Address')->fields(
Field::string('street'),
Field::string('city'),
Field::string('zipCode'),
))
->dto(Dto::create('Metadata')->fields(
Field::string('createdAt'),
Field::bool('active'),
))
->dto(Dto::create('Object')->fields(
Field::int('id'),
Field::string('name'),
Field::string('email'),
Field::dto('address', 'Address'),
Field::array('roles'),
Field::dto('metadata', 'Metadata'),
))
->toArray();This is a simplified preview. The actual Schema Importer supports JSON Schema, OpenAPI, and more advanced type inference.
How It Works
- Paste JSON — Any valid JSON object
- Choose format — PHP Builder, XML, or YAML
- Copy output — Use in your project
Tips
- Nested objects become separate DTOs
- Arrays of objects become collections
- Field names are preserved as-is (the actual generator converts to camelCase)
For Production Use
This browser-based tool provides a quick preview. For full functionality including:
- JSON Schema parsing with
$refresolution - OpenAPI document support
- External file references
- Type inference from multiple examples
Use the CLI importer:
bash
# From JSON data
php -r "echo (new PhpCollective\Dto\Importer\Importer())->import(file_get_contents('data.json'));"
# Or save to file
vendor/bin/dto import data.json --output=config/dto.phpSee Schema Importer for complete documentation.