Szerintem aki kicsit is foglalkozik a PHP-val, már látta, hogyan lehet egy SOAP web service-t létrehozni vele, ott van a beépített SoapServer megoldás, a közkedvelt nuSOAP, de nagyobb keretrendszerek is adnak rá támogatást.
Ami közös mindben, hogy nyűg meghegeszteni ezeket, mindnek megvan a maga problémája, vagy csak egyszerű ocsmány lesz az eredmény.
A napokban a PHP topikban is előjött egy ilyen témájú probléma, ezért megfordult a fejemben, hogy megpróbálom belefűzni a meglévő MVC-s keretembe azt, hogy létre tudjunk hozni egyszerűen web service-t PHP-val.
Ami alapból kikötés volt:
- nincs kézi WSDL irkálás
- nincs annotálás
- metódus paramétere csak complex type lehet (vagy void nyilván)
Amit el kell fogadni, hogy fosch lesz: osztályok kidekorálása service infókkal
Eredmény, egy service osztály:
<?php
/* namespace játék */
class SvcController extends WebService {
public static function __static() {
typeof(__CLASS__)->Attributes()->MethodAttributes()->Add("Method1", new Operation(typeof(new InPut()), "method1 leírása"))->Add("VoidMethod", new Operation());
}
public function Method1(InPut $in) {
/* ... */
return $out;
}
public function VoidMethod() {
/* ... */
}
}