-
Notifications
You must be signed in to change notification settings - Fork 1
Examples
Nikita Krasnikov edited this page Mar 27, 2022
·
3 revisions
JSON Data:
{
"id": 2,
"first_name": "Tam",
"last_name": "Le-Good",
"email": "[email protected]",
"gender": "Bigender",
"ip_address": "2.92.36.184",
"addresses": [
{
"name": "Home",
"city": "Test",
"street": "Test st.",
"house": "1",
"coordinates": {
"lon": 77.2123124,
"lat": 43.2123124
}
}
],
"skills": [
"go",
"php"
]
}Template:
<?php
namespace common\models;
using yii\base\BaseObject;
/***
* Class {{ Name }}
* @package common\models
*/
class {{ Name }} extends BaseObject
{
{{ Properties }}
/**
* @var {{ Type.Doc }}
*/
public {{ Type }} ${{ Name.CamelCase }};
{{ /Properties }}
}
CLI-command: gendata gen -l php -t template.txt -d data.json --rootClassName Gen --prefixClassName Test --suffixClassName Class
Generated:
- File: TestGenClass.php
<?php
namespace common\models;
using yii\base\BaseObject;
/***
* Class TestGenClass
* @package common\models
*/
class TestGenClass extends BaseObject
{
/**
* @var int
*/
public int $id;
/**
* @var string
*/
public string $firstName;
/**
* @var string
*/
public string $lastName;
/**
* @var string
*/
public string $email;
/**
* @var string
*/
public string $gender;
/**
* @var string
*/
public string $ipAddress;
/**
* @var TestAddressesClass[]
*/
public array $testAddressesClass;
/**
* @var string[]
*/
public array $skills;
}- File: TestAddressesClass.php
<?php
namespace common\models;
using yii\base\BaseObject;
/***
* Class TestAddressesClass
* @package common\models
*/
class TestAddressesClass extends BaseObject
{
/**
* @var string
*/
public string $name;
/**
* @var string
*/
public string $city;
/**
* @var string
*/
public string $street;
/**
* @var string
*/
public string $house;
/**
* @var TestCoordinatesClass
*/
public TestCoordinatesClass $testCoordinatesClass;
}- File: TestCoordinatesClass.php
<?php
namespace common\models;
using yii\base\BaseObject;
/***
* Class TestCoordinatesClass
* @package common\models
*/
class TestCoordinatesClass extends BaseObject
{
/**
* @var float
*/
public float $lon;
/**
* @var float
*/
public float $lat;
}Template:
package main
{{ SPLIT }}
type {{ Name.PascalCase }} struct {
{{ Properties }}
{{ Name.PascalCase }} {{ Type.Doc }} `json:"{{ Name.CamelCase }}"`
{{ /Properties }}
}
{{ /SPLIT }}
CLI-command: gendata gen -l php -t template.txt -d data.json --rootClassName Gen
Generated:
- File: gen.go
package main
type Gen struct {
Id int `json:"id"`
FirstName string `json:"firstName"`
LastName string `json:"lastName"`
Email string `json:"email"`
Gender string `json:"gender"`
IpAddress string `json:"ipAddress"`
Addresses []*Addresses `json:"addresses"`
Skills []string `json:"skills"`
}
type Addresses struct {
Name string `json:"name"`
City string `json:"city"`
Street string `json:"street"`
House string `json:"house"`
Coordinates *Coordinates `json:"coordinates"`
}
type Coordinates struct {
Lon float64 `json:"lon"`
Lat float64 `json:"lat"`
}