2016-07-25 2 views
0

현재 PHP로 조금만 놀고 있고 클래스를 데이터베이스 (배열/JSON/키 값)에 저장할 수있는 데이터로 변환하는 방법을 찾으려고했습니다.Php 클래스에서 Array/Json으로 돌아 가기

get_obj_vars를 사용하거나 배열에 캐스트하는 것이 꽤 쉬운 것처럼 보일 때까지. 하지만 나중에 데이터베이스에서 데이터를로드하고 이전 클래스와 다시 변환하여 클래스 형식의 데이터로 계속 작업 할 수 있습니다.

예 :

class TestClass { 
    private $name; 
    private $number; 
    private $testClass2; 
    /* getter + setter */ 
} 

class TestClass2 { 
    private $name; 
    private $number; 
    /* getter + setter */ 
} 

$testclass = new TestClass(); 
$testclass2 = new TestClass2(); 
$testclass2->setName("Class2"); 
$testclass2->setNumber(42); 

$testclass->setName("MyName"); 
$testclass->setNumber(23); 
$testclass->setTestClass2($testclass2); 

지금 내가이 "키 - 값 테이블"의 데이터베이스에 저장할 수있는 일에 $의 TestClass에 변환하고자합니다. 그런 다음 데이터베이스에서 주어진 데이터로 클래스를 다시 만들고 싶습니다.

+0

, 당신은 무엇을 시도? – Roope

답변

1

나는 당신이 PHP에서 및 때 unserialize 데이터를 직렬화 하는 방법은 무엇을 찾고 있는지 생각합니다.

보고보십시오 : How to use php serialize() and unserialize() 그것의 적어도 일부는 "아주 쉽게 보인다"경우

+0

그래, 좋아 보인다. unserialize 메서드의 반환 형식을 정의 할 수있는 방법이 있습니까? 그래서 내 IDE는 메소드 이름을 자동 채우기 할 수 있습니다 :). – inf3ction

+0

IDE에서 지원하는지 확실하지 않습니다. 문서를 확인해야합니다. 대개 IntelliJ (PHP Storm)의 반환 유형은 doc 블록에서 @return 주석을 사용하여 지정됩니다. 올바른 유형을 지정하면 IDE가 자동으로 완료 할 올바른 클래스 메소드를 선택해야합니다. 희망이 도움이됩니다! –

+0

물론 @return 주석을 추가 할 수 있습니다. 하지만 정적 정적, 반환 형식을 동적으로 정의하고 싶습니다. CLASS A를 unserialize하는 경우 CLASS A로 반환 유형을 정의하려고합니다. CLASS B를 unserialize하면 반환 유형을 CLASS B로 정의하려고합니다. 그렇지 않으면 각 클래스에 대해 동일한 반환 유형으로 메소드를 정의해야합니다. – inf3ction

관련 문제