yiiapi/docs/guide/pl/topics.webservice.txt
(开头部分) 7KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
Web Service
===========
[Web service](http://en.wikipedia.org/wiki/Web_service) jest opartym o sieć
systemem informatycznym zaprojektowanym do wspierania wzajemnej interakcji
maszyna-maszyna. W kontekście aplikacji webowej termin odnosi się do zbioru
funkcji API, które są dostępne poprzez Internet i wykonywane są w zdalnym
systemie utrzymującym udostępnianą usługę. Przykładowo: klient oparty
o [Flex](http://www.adobe.com/products/flex/) może wywoływać funkcje zaimplementowane
na serwerze utrzymującym aplikację opartą o PHP. Web service opiera się
o [SOAP](http://en.wikipedia.org/wiki/SOAP), jako podstawową warstwę stosu
protokołu komunikacyjnego.
Yii dostarcza klas [CWebService] i [CWebServiceAction] dla uproszczenia pracy
związanej z implementacją Web service'u w aplikacji webowej. Poszczególne
API pogrupowane są w klasy, zwane *dostawcami usług*. Dla każej z tych klas
Yii generuje specyfikację [WSDL](http://www.w3.org/TR/wsdl) określającą,
jakie funkcje API są dostępne i jak powinny być wywoływane przez klienta.
W momencie gdy funkcja API jest wywoływana przez klienta, Yii tworzy instancję
odpowiedniego dostawcy usługi i wywołuje potrzebne API, aby zrealizować żądanie.
> Uwaga: [CWebService] opiera się o [rozszerzenie PHP SOAP]
(http://www.php.net/manual/en/ref.soap.php). Upewnij się,
że je włączyłeś zanim wypróbujesz przykłady zawarte w tej części.
Definiowanie dostawcy usługi
----------------------------
Jak wcześniej mówiliśmy, dostawca usługi jest klasą udostępniającą metody,
które mogą być wywoływane zdalnie. Yii opiera się na [komentarzach dla potrzeb
dokumentacji - tzw. doc comment](http://java.sun.com/j2se/javadoc/writingdoccomments/)
i na [introspekcjach klas](http://php.net/manual/en/book.reflection.php)
w celu identyfikacji, która z metod może być zdalnie wywoływana oraz jakie są
jej parametry i zwracana wartość.
Rozpocznijmy od prostej usługi informującej o notowaniach giełdowych. Pozwala ona
klientowi uzyskać informację o notowaniu określonych akcji. Definiujemy dostawcę
usług jak pokazano niżej. Zwróć uwagę, że klasę dostawcy `StockController`
definiujemy jako rozszerzenie klasy [CController]. Nie jest to jednak wymagane.
Wkrótce krótko wyjaśnimy dlaczego.
~~~
[php]
class StockController extends CController
{
/**
* @param string the symbol of the stock
* @return float the stock price
* @soap
*/
public function getPrice($symbol)
{
$prices=array('IBM'=>100, 'GOOGLE'=>350);
return isset($prices[$symbol])?$prices[$symbol]:0;
//...return stock price for $symbol
}
}
~~~
Powyżej deklarujemy metodę `getPrice`, która stanie się funkcją API Web
后面还有 166 行代码,购买后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
