FB3
Новичок
Автоматическая генерация запросов к серверу на основе XSD схемы
Имеются XSD схемы, связанные между собой инклудами. То есть в основном файле подключаются все остальные.
Есть в них запросы типа:
Сейчас есть скрипт, который генерит класс на основе такого кода (копипастом в скрипт вставляется) из XSD + XML для него + все это делается регулярными выражениями . Когда классу передаем параметры, то он подгружает XML и с помощью DOM вставляет туда нужны параметры.
Хотелось бы просто положить этот набор запросов в какую-нибудь папку проекта и писать в коде PHP что-нибудь типа:
$client->UserGetRequest($userId), а $client сам бы искал нужный запрос в XSD, генерил XML необходимый и отправлял бы его на сервер.
Подскажите плиз идею, как это можно реализовать.
Понимаю, что начинать нужно с волшебных методов __call(), наверняка смогу написать в коде нахождение запроса в XSD схеме, но что с ним делать дальше (без регулярок, по нормальному, все таки это XML), пока не придумал, поэтому и прошу совета.
И в догонку, насколько я понимаю, __call() да и вообще методы в PHP не могут знать названия переменных, которые им передали, соответственно, придется передавать ассоциативный массив, то есть вместо $client->UserGetRequest($userId) писать $client->UserGetRequest(array('userId' => $userId)). Верно?
Имеются XSD схемы, связанные между собой инклудами. То есть в основном файле подключаются все остальные.
Есть в них запросы типа:
PHP:
<xs:complexType name="UserGetRequest">
<xs:annotation>
<xs:documentation>
Request to get the user information. The response is either UserGetResponse
or ErrorResponse.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="request">
<xs:sequence>
<xs:element name="userId" type="UserId"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
Хотелось бы просто положить этот набор запросов в какую-нибудь папку проекта и писать в коде PHP что-нибудь типа:
$client->UserGetRequest($userId), а $client сам бы искал нужный запрос в XSD, генерил XML необходимый и отправлял бы его на сервер.
Подскажите плиз идею, как это можно реализовать.
Понимаю, что начинать нужно с волшебных методов __call(), наверняка смогу написать в коде нахождение запроса в XSD схеме, но что с ним делать дальше (без регулярок, по нормальному, все таки это XML), пока не придумал, поэтому и прошу совета.
И в догонку, насколько я понимаю, __call() да и вообще методы в PHP не могут знать названия переменных, которые им передали, соответственно, придется передавать ассоциативный массив, то есть вместо $client->UserGetRequest($userId) писать $client->UserGetRequest(array('userId' => $userId)). Верно?