json to popo
v1.0.0
일반 기존 PHP 객체를 JSON 콘텐츠로 채웁니다.
Composer를 사용하여 이 라이브러리를 설치할 수 있습니다.
composer require abgeo/json-to-popo
기본 파일에 작곡가 자동 로더를 포함합니다(예: index.php).
require __DIR__.'/../vendor/autoload.php';
다음 콘텐츠가 포함된 example.json
있다고 가정해 보세요.
{
"firstName" : " Temuri " ,
"lastName" : " Takalandze " ,
"active" : true ,
"position" : {
"title" : " Developer " ,
"department" : {
"title" : " IT "
}
}
}
이 JSON 데이터를 나타내는 여러 POPO 클래스는 다음과 같습니다.
Department.php
<?php
class Department
{
/**
* @var string
*/
private $ title ;
// Getters and Setters here...
}
Position.php
<?php
class Position
{
/**
* @var string
*/
private $ title ;
/**
* @var ABGEOPOPOExampleDepartment
*/
private $ department ;
// Getters and Setters here...
}
Person.php
<?php
class Person
{
/**
* @var string
*/
private $ firstName ;
/**
* @var string
*/
private $ lastName ;
/**
* @var bool
*/
private $ active ;
/**
* @var ABGEOPOPOExamplePosition
*/
private $ position ;
// Getters and Setters here...
}
참고 : 모든 POPO 속성에는 올바른 데이터 유형의 정규화된 @var
주석이 있어야 합니다.
이제 이 json to popo 변환하려고 합니다. 이 패키지는 이러한 기능을 제공합니다.
새로운 ABGEOPOPOComposer
개체를 만들고 example.json
콘텐츠를 읽어보겠습니다.
$ composer = new Composer ();
$ jsonContent = file_get_contents ( __DIR__ . ' /example.json ' );
마법을 부릴 시간이에요! JSON 및 기본 클래스의 내용으로 composeObject()
호출하면 POPO가 표시됩니다.
$ resultObject = $ composer -> composeObject ( $ jsonContent , Person::class);
$resultObject
인쇄:
var_dump ( $ resultObject );
//class ABGEOPOPOExamplePerson#2 (4) {
// private $firstName =>
// string(6) "Temuri"
// private $lastName =>
// string(10) "Takalandze"
// private $active =>
// bool(true)
// private $position =>
// class ABGEOPOPOExamplePosition#4 (2) {
// private $title =>
// string(9) "Developer"
// private $department =>
// class ABGEOPOPOExampleDepartment#7 (1) {
// private $title =>
// string(2) "IT"
// }
// }
//}
여기에서 전체 예를 확인하세요.
자세한 내용은 변경 로그를 참조하세요.
풀 요청을 환영합니다. 주요 변경사항의 경우 먼저 이슈를 열어 변경하고 싶은 사항에 대해 논의하세요.
테스트를 적절하게 업데이트하세요.
저작권 © 2020 테무리 타카란제.
MIT 라이센스에 따라 출시되었습니다.