micro/dto
最新稳定版本:v2.0.0-alpha1
Composer 安装命令:
composer require micro/dto
包简介
Library for generating and validation DTO classes.
README 文档
README
PHP library for generating DTO classes.
Installation
Use the package manager composer to install micro/dto.
composer require micro/dto
Usage
Declare all required classes in the XML Schemea
- example.xml
- See the full list of possible options in the XSD schema
<?xml version="1.0"?> <dto xmlns="micro:dto-1.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="micro:dto-1.6 https://raw.githubusercontent.com/Micro-PHP/dto/master/src/Resource/schema/dto-1.6.xsd"> <class name="User\User"> <property name="email" type="string"> <validation> <not_blank/> <email/> </validation> </property> <property name="username" type="string"> <validation> <length min="6" max="50"/> <regex pattern="/^(.[aA-zA]+)$/"/> </validation> </property> <property name="age" type="int"> <validation> <not_blank groups="put"/> <greater_than value="18" /> <less_than value="100" groups="put, patch" /> </validation> </property> <property name="updatedAt" type="datetime" /> <property name="parent" type="User\User" /> </class> </dto>
- And run generator
$classGenerator = new \Micro\Library\DTO\ClassGeneratorFacadeDefault( ['./example.xml'], // List of class declaration files './out', // Path to the folder where to generate 'Transfer' // Suffix for the all DTO classes (optional) ); $classGenerator->generate(); // Usage example $user = new \User\UserTransfer(); $user ->setAge(19) ->setEmail('demo@micro-php.net'); // OR // $user['age'] = 19; $user['email'] = 'demo@micro-php.net'; // Validation example $validator = new \Micro\Library\DTO\ValidatorFacadeDefault(); $validator->validate($user); // Validation groups by default ["Default"] $validator->validate($user, ['patch', 'put']); // Set validation groups ["patch", "put"] // Serialize example $serializer = new \Micro\Library\DTO\SerializerFacadeDefault(); $serializer->toArray($user); // Simple array $serializer->toJson($user); // Simple Json // Deserialize example $serialized = $serializer->toJsonTransfer($user); $deserialized = $serializer->fromJsonTransfer($serialized);
See full example
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
License
统计信息
- 总下载量: 489
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 12
- 点击次数: 1
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2022-05-11