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 积分,解读结果公开显示在下面。

还没有人解读过这个文件。