Представление объектов - PHP - PullRequest
2 голосов
/ 21 мая 2011

Я пытаюсь понять, как лучше всего представить данные, которые в конечном итоге я извлеку и соберу из них JSON / XML ... однако я продолжаю рассуждать о том, как определить объект ..

По сути, я хочу представить отношения родитель / потомок вместе с тем, какие атрибуты есть у элемента. Так, чтобы я мог построить элемент JSON или XML.

Кто-нибудь работал с чем-то подобным раньше или есть идеи, как это сделать?

Мой XML-файл будет выглядеть примерно так:

<props>
  <items>
    <item id='foo'/>
    <item id='foo2' />
  </items>
  <bar>
    <test>
       <tree>This Data</tree>
       <tree>That Data</tree>
    </test>
  </bar>
</props>

Я думал о том, как пытаться представить каждый элемент данных в объекте как:

class ItemResource {
  private $key;
  private $value;
  private $attribute_list = array();

  public function __construct($key, $value, array $attributeList=null){
      $this->key = $key;
      $this->value = $value;
      if($attributeList!=null){  
          //do stuff 
          $this->attribute_list = $attributeList;
      }
    }

}

1 Ответ

2 голосов
/ 21 мая 2011

Звучит как отличная работа для PHP Array . Вы можете создавать бесконечно большие иерархии ключ-значение, используя ассоциативные массивы.

$itemresource = array(
    "key" => $key,
    "value" => $value,
    "attribute_list" => array(
        "foo" => "bar",
        "some" => "value"
    )
);

Ассоциативные массивы также, вероятно, являются входными данными для генераторов XML (хотя это догадки с моей стороны)

Вы также можете легко распечатать свои массивы в формате JSON, используя json_encode

...