Download the PHP package martinstarecek/schematic without Composer
On this page you can find all versions of the php package martinstarecek/schematic. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download martinstarecek/schematic
More information about martinstarecek/schematic
Files in martinstarecek/schematic
Package schematic
Short Description Generate POPO from JSON Schemas
License Apache-2.0
Informations about the package schematic
Schematic
Schematic is a JSON Schema parser that also supports Plain Old PHP Object (POPO) code generation. These generated models can either be used for as a starting point for domain entities or simply provide additional structure for JSON request bodies.
Strives for PSR-1, PSR-2, and PSR-4 compliance.
Install
Examples
The example/
directory contains a number of examples.
Schema Parsing
Given the following schema in car.json
:
First the schema needs to be parsed:
When the schema is an object the properties can be accessed:
And can be checked for required properties:
Array items provide additional details about contents:
Code Generation
Generated classes are extremely basic, plain PHP objects from schemas.
The generator can create an AST from an object schema, as well as additional classes for object properties.
This will create an Acme\Model\Car
class that extends Acme\Model
. Any object
properties in the schema will also be created. Once the classes have been generated
they can be written to a directory:
The writer will convert the AST into code, write to src/
, and return the
files that were created.
Complete Example
Putting it all together, here is a complete example for code generation:
Note: The last parameter to write()
the PSR-4 namespace of your
project. When provided, this namespace will be removed from the file path.
The source of src/Car.php
will be:
And the source of src/Car/Owner.php
will be:
Recommendations
Models generated by Schematic do not include functionality to populate the model from JSON. We recommend using using JsonMapper or a similar hydrator.
License
Apache 2.0
All versions of schematic with dependencies
ext-json Version *