承接 simonisme/array-to-dto 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

simonisme/array-to-dto

Composer 安装命令:

composer require simonisme/array-to-dto

包简介

README 文档

README

This is simple library to convert array to specified value object classes.

Example

Simple object

class EmailAddress
{
	public $email;

	public function __construct(string $email)
	{
		$this->email = $email;
	}

}

$arrayToDtoParse = new ArrayToDtoParser();
$result  = $arrayToDtoParse->parseToDto(EmailAddress::class, [
    'address@domain.com';
]);

//  $result variable contains correct EmailAddress object
echo $result->email; // address@domain.com

Nested object

class User
{
	public $emailAddress;
	public $number;
	public $birthDate;

	public function __construct(EmailAddress $emailAddress, string $name, \DateTime $birthDate)
	{
		$this->emailAddress = $emailAddress;
		$this->number = $name;
		$this->birthDate = $birthDate;
	}
}

class Nested
{
	public $user;
	public $emailAddress;

	public function __construct(User $user, EmailAddress $emailAddress)
	{
		$this->user = $user;
		$this->emailAddress = $emailAddress;
	}
}

class EmailAddress
{
	public $email;

	public function __construct(string $email)
	{
		$this->email = $email;
	}
}

class Dto
{
	public $user;
	public $nested;

	public function __construct(User $user, Nested $nested)
	{
		$this->user = $user;
		$this->nested = $nested;
	}
}

$arrayToDtoParse = new ArrayToDtoParser();
$result  = $arrayToDtoParse->parseToDto(Dto::class, [
    'user' => [
        'emailAddress' => 'address@domain.com',
        'name' => 'Simon',
        'birthDate' => '1991-01-02',
    ],
    'nested' => [
        'user' => [
            'emailAddress' => 'address2@domain.com',
            'name' => 'Simon',
            'birthDate' => '1991-01-02',
        ],
        'emailAddress' => 'address3@domain.com'
    ]
]);

For more examples please look into /tests directory.

Important

Keys in the array and constructor's parameters have to have the same names!

统计信息

  • 总下载量: 11
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2017-09-03

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固