JSON to PHP 도구(JSON to PHP Converter)는 JSON 데이터 구조를 표준 PHP 클래스 코드로 자동 변환하는 실용적인 도구입니다. 개발자가 네임스페이스 / 클래스 / public 속성 / 생성자를 수동으로 작성하는 반복 작업을 해방시켜주며, 특히 API 인터페이스 문서의 예시 JSON을 Composer 프로젝트에 직접 require할 수 있는 PHP 엔티티 클래스로 빠르게 변환하는 데 적합합니다.
이 도구는 4가지 주요 코드 스타일을 지원합니다: ① ArrayObject 스타일(\ArrayObject 상속, 배열 접근과 객체 접근 지원, Laravel / Symfony Serializer 생태계에서 흔히 사용); ② stdClass 스타일(\stdClass 상속, 객체 접근만 지원, WordPress / json_decode 기본 동작); ③ readonly class 스타일(PHP 8.1+ final readonly class, 생성 후 불변, DTO에 적합); ④ Laravel 통합 스타일(Jsonable + Arrayable 구현, Eloquent API Resource와 함께 사용). 개발자는 프로젝트에서 사용하는 프레임워크에 따라 자유롭게 선택할 수 있습니다.
PHP 타입 매핑은 JSON to PHP의 핵심입니다. 이 도구는 JSON의 기본 타입을 PHP 표준 타입으로 매핑합니다: 문자열은 string으로, 정수는 int로, 부동소수점은 float으로, 불리언은 bool로, 배열은 array로, 중첩 객체는 독립 클래스로(필드명을 대문자로 시작하여 명명), null은 ?type(널러블 속성)으로 매핑합니다. 모든 속성은 PHP 7.4+의 typed properties로 선언되어 IDE에서 직접 타입 검사를 할 수 있습니다.
또 다른 차별화된 하이라이트는 'JsonSerializable 인터페이스 자동 구현'입니다: 생성된 각 PHP 클래스는 자동으로 \JsonSerializable을 구현하고 public function jsonSerialize(): mixed { return [...] } 메서드를 생성합니다. 이는 echo json_encode($user)로 직접 JSON 문자열을 출력할 수 있으며 json_encode가 jsonSerialize()가 반환한 배열 데이터를 자동으로 호출한다는 것을 의미합니다. Laravel에서 Jsonable 인터페이스와 함께 사용하면 추가 처리 없이 직접 return response()->json($user)를 사용할 수 있습니다.
JSON을 서버에 업로드하여 처리해야 하는 일부 온라인 도구와 달리 이 도구의 모든 계산은 브라우저 내에서 완료됩니다. quicktype-core가 Web Worker를 통해 로드되고 실행되며 JSON 파싱, 타입 추론, PHP 코드 생성, ZIP 패키징이 모두 로컬에서 수행되어 어떤 서버에도 데이터를 보내지 않습니다. 이는 API 키, 사용자 개인정보 필드 또는 출시되지 않은 비즈니스 구조가 포함된 JSON에 특히 중요하며 페이지를 닫으면 데이터가 메모리에서 삭제됩니다.
생성된 코드는 일반적으로 Composer 프로젝트에 넣어 사용해야 합니다. composer.json에서 PHP 버전이 요구 사항을 충족하는지 확인하고(PHP 7.4+는 typed properties를 지원하고 PHP 8.1+는 readonly class를 지원함) 생성된 클래스를 src 디렉터리에 복사한 후 네임스페이스(PSR-4)로 자동 로드합니다. 그런 다음 json_decode($jsonString, false) 또는 json_decode($jsonString, true) + 역직렬화로 데이터를 소비하여 PHP 타입 시스템의 편의를 누릴 수 있습니다.