Существует ли php-библиотека для преобразования структур данных?
Коллеги, подскажите библиотеку для преобразования структур данных (массивов, объектов).
Например, есть массив (или объект с такой структурой)
$student['name']='Vasya Pupkin';
$student['contacts']['email']='vasya@pupk.in';
$student['age']=19;
Мне нужно получить:
$user['type']='student'; // Константа, одинаковая для всех преобразований этого типа
$user['realname']='Vasya Pupkin';
$user['email']='vasya@pupk.in';
Я мог бы написать так:
$user = array('type'=>'student','realname'=>$student['name'] ....);
Но я так не хочу.
Я хочу задать правила преобразования в виде отдельного объекта/конфигурационного файла, чтобы преобразования выполняла библиотека. Помимо прочего, это поможет не хардкодить жестко модель данных, а задавать ее отдельно.
То есть, нужен некоторый простой (и легковесный) аналог XSLT для преобразования структур данных в PHP.
Попадалось что-нибудь такое?
Вопрос же не в том, как это реализовать, а в том, чтобы найти готовую библиотеку, на вход которой можно было бы подавать правила вида:
$rules[]=array('cmd'=>copy,'source'=>'contacts/email','destinee'=>'email');
и не писать свой велосипед, если есть готовое :)
Boris Korobkov, ну там не пара строчек получается, надо работать с вложенностью, обрабатывать ситуации отсутствия данных в источнике, добавлять разные правила для простановки констант, пересчетов, рекурсивного изменения структуры и пр. Прорабатывать кидаемые исключения, писать примеры, документацию, покрывать автоматическими тестами. Это получается отдельный проект, который нужно писать и поддерживать.
Я, конечно, написал свою простенькую библиотеку на самые первоочередные задачи, но хочется нормальный инструмент.