Как сгенерировать объект из XML?

Есть ли библиотека которая разрешает делать такое? Смотрел jsm/serializer но это немного не то.

Например есть интерфейсы,
interface Form{
	public function addElement(Element $element);
}
interface Element{
	
}
interface Text extends Element{
	public function setName($name);
}

interface Button extends Element{
	public function setLabel($label);
}


Хочу что бы из такого xml:

<form>
<text name="tf1"/>
<button label="Do it!"/>
</form>


вышел объект типа :
$form = new Form();

$t = new Text();
$t->setName('tf1');
$form->addElement($t);

$t = new Button();
$t->setLabel('Do it!');
$form->addElement($t);


Можно конечно самому написать, но возможно есть готовая библиотека которая таким занимается? Из возможностей, хотелось бы возможность ставить алиасы, тоесть описать тэг textbox а создавался класс Text, указывать какой метод используется для добавления чайлдов (в примере addElement).
  • Вопрос задан
  • 146 просмотров
Пригласить эксперта
Ответы на вопрос 1
Keanor
@Keanor
Ведущий разработчик
Мы такую вещь реализовывали отдельной фабрикой формы. Через SimpleXML это не сложно.

У вас ведь zf2? Если хочется вариант попроще, то можно xml читать через \Zend\Config\Reader\Xml и скармливать в дефолтовую фабрику, но тогда xml придется подгонять под спецификацию.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы