Zend Framework ±×·³, Ŭ¶óÀÌ¾ðÆ®·Î¼ ¸®¸ðÆ®ÀÇ
XML-RPC ¼ºñ½º¸¦ »ç¿ëÇÏ´Â Àϵµ ¼Æ÷Æ®Çϰí ÀÖ½À´Ï´Ù.±×·¯±â À§Çؼ´Â
Zend_XmlRpc_Client
ÆÐŰÁö¸¦ »ç¿ëÇÕ´Ï´Ù.
ÁÖµÈ ±â´É¿¡´Â,PHP (¿Í)°ú XML-RPC ÀÇ »çÀÌÀÇ ÇüÅ º¯È¯À̳ª ¼¹öÀÇ ÇÁ·Ï½Ã ¿ÀºêÁ§Æ®,
±×¸®°í ¼¹ö°¡ Á¦°øÇÏ´Â ±â´ÉÀ» Á¶»çÇÏ´Â °ÍµîÀÌ ÀÖ½À´Ï´Ù.
Zend_XmlRpc_Client
ÀÇ constructor¡¡ ¡¡ Àº,
¸®¸ðÆ® XML-RPC ¼¹öÀÇ URL (À»)¸¦ ÃÖÃÊÀÇ Àμö·Î¼ ¹Þ½À´Ï´Ù.
µ¹·ÁÁÖ¾îÁø ÀνºÅϽº¸¦ »ç¿ëÇϰí,
±× ÀÚ¸®¼Ò·ÎºÎÅÍ ´Ù¾çÇÑ ¸®¸ðÆ® ¸Þ¼Òµå¸¦ ½ÇÇàÇÕ´Ï´Ù.
¸®¸ðÆ® ¸Þ¼Òµå¸¦ XML-RPC Ŭ¶óÀÌ¾ðÆ®·ÎºÎÅÍ ÄÝ ÇÏ·Á¸é ,
ÀνºÅϽº¸¦ ÀÛ¼ºÇÑ ´ÙÀ½¿¡ call()
¸Þ¼Òµå¸¦ ÄÝ ÇÕ´Ï´Ù.
ÀÌÇÏÀÇ ¿¹¿¡¼´Â Zend Framework ÀÇ À¥ »çÀÌÆ®»ó¿¡ ÀÖ´Â µ¥¸ð¿ëÀÇ
XML-RPC ¼¹ö¸¦ »ç¿ëÇÕ´Ï´Ù.Zend_XmlRpc
ÀÇ Å×½ºÆ®³ª Á¶»ç¸¦ À§Çؼ, ÀÌ ¼¹ö¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
·Ê 42.1. XML-RPC ¸Þ¼ÒµåÀÇ ÄÝ
<?php
require_once 'Zend/XmlRpc/Client.php';
$client = new Zend_XmlRpc_Client('http://framework.zend.com/xmlrpc');
echo $client->call('test.sayHello');
// hello
¸®¸ðÆ® ¸Þ¼ÒµåÀÇ ÄÝ¿¡ ÀÇÇØ¼ µ¹·ÁÁÖ¾îÁø´Ù XML-RPC ÀÇ °ªÀº,
ÀÚµ¿ÀûÀ¸·Î PHP ÀÇ ³×ÀÌÆ¼ºêÇü¿¡ º¯È¯µË´Ï´Ù.
À§ÀÇ ¿¹¿¡¼´Â PHP ÀÇ string
ÇÏÁö¸¸ µ¹·ÁÁÖ¾îÁö¹Ç·Î,
±×°ÍÀ» ±×´ë·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
call()
¸Þ¼ÒµåÀÇ ÃÖÃÊÀÇ ÆÄ¶ó¹ÌÅÍ´Â,
ÄÝ ÇÏ´Â ¸®¸ðÆ® ¸Þ¼ÒµåÀÇ À̸§ÀÔ´Ï´Ù.
±× ¸®¸ðÆ® ¸Þ¼Òµå°¡ ¾î¶°ÇÑ ÆÄ¶ó¹ÌÅ͸¦ ¿ä±¸ÇÏ´Â °æ¿ì´Â, ±×°ÍÀ»
call()
ÀÇ µÎ¹øÂ°ÀÇ ¿É¼ÇÀÇ ÆÄ¶ó¹ÌÅÍ·Î ÁöÁ¤ÇÕ´Ï´Ù.
ÀÌ ÆÄ¶ó¹ÌÅÍ¿¡´Â, ¸®¸ðÆ® ¸Þ¼Òµå¿¡ °Ç³×ÁÖ´Â °ªÀ» ¹è¿·Î ÁöÁ¤ÇÕ´Ï´Ù.
·Ê 42.2. ÆÄ¶ó¹ÌÅ͸¦ ÁöÁ¤Çß´Ù XML-RPC ¸Þ¼ÒµåÀÇ ÄÝ
<?php
require_once 'Zend/XmlRpc/Client.php';
$client = new Zend_XmlRpc_Client('http://framework.zend.com/xmlrpc');
$arg1 = 1.1;
$arg2 = 'foo';
$result = $client->call('test.sayHello', array($arg1, $arg2));
// $result (Àº)´Â ³×ÀÌÆ¼ºêÀÎ PHP ÀÇ ÇüŰ¡ µË´Ï´Ù
¸®¸ðÆ® ¸Þ¼Òµå°¡ ÆÄ¶ó¹ÌÅ͸¦ ¿ä±¸Çϰí ÀÖÁö ¾Ê´Â °æ¿ì´Â,
ÀÌ ÆÄ¶ó¹ÌÅÍ¿¡´Â ¾Æ¹«°Íµµ ÁöÁ¤ÇÏÁö ¾Ê½À´Ï´Ù.ȤÀº ÇÏ´ÃÀÇ array()
(À»)¸¦ °Ç³×ÁÝ´Ï´Ù.¸®¸ðÆ® ¸Þ¼Òµå¿¡ °Ç³×ÁÖ´Â ÆÄ¶ó¹ÌÅÍÀÇ ¹è¿¿¡´Â,
³×ÀÌÆ¼ºêÀÇ PHP ÇüÅÂ¿Í Zend_XmlRpc_Value
¿ÀºêÁ§Æ®ÀÇ ¾çÂÊ ¸ðµÎ¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.±×°ÍµéÀ» È¥¿ëÇÏ´Â °Íµµ °¡´ÉÇÕ´Ï´Ù.
call()
¸Þ¼Òµå´Â ÀÚµ¿ÀûÀ¸·Î XML-RPC ÀÇ ¸®½ºÆù½º¸¦ º¯È¯ÇØ,
µ¿µîÇÑ PHP ³×ÀÌÆ¼ºêÇüÀ¸·Î ÇØ µ¹·ÁÁÝ´Ï´Ù.µ¹¾Æ°¡ °ªÀ»
Zend_XmlRpc_Response
¿ÀºêÁ§Æ®·Î¼ ÃëµæÇÏ·Á¸é ,
ÀÌ ¸Þ¼ÒµåÀÇ ´ÙÀ½¿¡ getLastResponse()
(À»)¸¦ ÄÝ ÇÕ´Ï´Ù.
¸®¸ðÆ® ¸Þ¼Òµå¾È¿¡´Â ÆÄ¶ó¹ÌÅͰ¡ ÇÊ¿äÇÑ °ÍÀÌ ÀÖ½À´Ï´Ù.
ÇÊ¿äÇÑ ÆÄ¶ó¹ÌÅÍ´Â,Zend_XmlRpc_Client
ÀÇ
call()
¸Þ¼ÒµåÀÇ µÎ¹øÂ°ÀÇ ÆÄ¶ó¹ÌÅͷμ ¹è¿·Î ÁöÁ¤ÇÕ´Ï´Ù.
ÆÄ¶ó¹ÌÅ͸¦ °Ç³×ÁÖ´Â ¹æ¹ýÀº 2 °¡Áö ÀÖ½À´Ï´Ù.PHP ÀÇ ³×ÀÌÆ¼ºêÇü
(À̰ÍÀº ÀÚµ¿ÀûÀ¸·Î º¯È¯µË´Ï´Ù) ±×¸®°í °Ç³×ÁÖ´ÂÁö,
´ëÀÀÇÑ´Ù XML-RPC Çü (Zend_XmlRpc_Value
¿ÀºêÁ§Æ®ÀÇ Çϳª) ±×¸®°í °Ç³×ÁÙ±îÀÇ ¸ÓÁö¾Ê¾ÆÀΰ¡ÀÔ´Ï´Ù.
call()
ÀÇ ÆÄ¶ó¹ÌÅ͸¦ ³×ÀÌÆ¼ºêÀÇ PHP
ÇüÅ·Π°Ç³×ÁÝ´Ï´Ù.Áï string
,
integer
,float
,
boolean
,array
ȤÀº
object
±×¸®°í °Ç³×ÁÖ´Â °ÍÀÔ´Ï´Ù.
ÀÌ ¶§,PHP ÀÇ ³×ÀÌÆ¼ºêÇüÀº ÀÚµ¿ÀûÀ¸·Î °ËÃâµÇ¾î
ÀÌÇÏÀÇ °Ñ(Ç¥)¿¡ µû¶ó¼ XML-RPC ÇüÅ¿¡ º¯È¯µË´Ï´Ù.
Ç¥ 42.1. PHP (¿Í)°ú XML-RPC ÀÇ »çÀÌÀÇ ÇüÅ º¯È¯
PHP ³×ÀÌÆ¼ºêÇü | XML-RPC Çü |
---|---|
integer | int |
double | double |
boolean | boolean |
string | string |
array | array |
associative array | struct |
object | array |
ÆÄ¶ó¹ÌÅ͸¦ ³ªÅ¸³½´Ù Zend_XmlRpc_Value
ÀÇ ÀνºÅϽº¸¦ ÀÛ¼ºÇØ,XML-RPC ÀÇ ÇüŸ¦ ÁöÁ¤ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
ÀÌ¿Í °°ÀÌ ÇÏ´Â ÀÌÀ¯¿¡´Â ´ÙÀ½°ú °°Àº °ÍÀÌ ÀÖ½À´Ï´Ù.
ÇÁ·Î½ÃÀú¿¡ ¿Ã¹Ù¸¥ ÇüÅ·Π°Ç³×¹Þ´Â °ÍÀ» È®½ÇÈ÷ ÇÏ°í ½ÍÀº °ÍÀÌ ÀÖ´Ù (¿¹¸¦ µé¸é,integer (À»)¸¦ ¿ä±¸Çϰí ÀÖ´Â ÇÁ·Î½ÃÀú¿¡ ´ëÇØ¼ µ¥ÀÌŸº£À̽º·ÎºÎÅÍ ÃëµæÇÑ ¹®ÀÚ¿À» °Ç³×ÁÖ°í ½ÍÀº °æ¿ì µî).
ÇÁ·Î½ÃÀú°¡ base64
Çüųª
dateTime.iso8601
ÇüŸ¦ ¿ä±¸Çϰí ÀÖ´Â ÀÏÀÌ ÀÖ´Ù
(À̰͵éÀº PHP ÀÇ ³×ÀÌÆ¼ºêÇü¿¡´Â Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù).
ÀÚµ¿º¯¿ªÀÌ ½ÇÆÐÇÏ´Â °æ¿ì (¿¹¸¦ µé¸é, ÇÏ´ÃÀÇ XML-RPC ±¸Á¶Ã¼¸¦ ÆÄ¶ó¹ÌÅͷμ °Ç³×ÁÖ´Â °ÍÀ» »ý°¢ÇսôÙ. À̰ÍÀº,PHP ±×·³ ÇÏ´ÃÀÇ ¹è¿¿¡ ´ëÀÀÇÕ´Ï´Ù.±×·¯³ª, ÇÏ´ÃÀÇ ¹è¿À» ÆÄ¶ó¹ÌÅͷμ °Ç³×ÁÖ¸é, ±×°ÍÀÌ ÀÚµ¿º¯¿ªµÇ¾úÀ» ¶§¿¡ XML-RPC ÀÇ array (ÀÌ)°¡ µÇ¾î ¹ö¸³´Ï´Ù.¿Ö³ÄÇϸé, ÇÏ´ÃÀÇ ¹è¿Àº ¿¬»ó ¹è¿Àº ¾Æ´Ï±â ¶§¹®ÀÔ´Ï´Ù).
Zend_XmlRpc_Value
¿ÀºêÁ§Æ®¸¦ ÀÛ¼ºÇÏ´Â ¹æ¹ýÀº
2ÅëÀÖ½À´Ï´Ù.Zend_XmlRpc_Value
ÀÇ ¼ºê Ŭ·¡½ºÀÇ ÀνºÅϽº¸¦ Á÷Á¢ ÀÛ¼ºÇÏ´ÂÁö,
ȤÀº Á¤Àû ÆÑÅ丮 ¸Þ¼Òµå Zend_XmlRpc_Value::getXmlRpcValue()
(À»)¸¦ »ç¿ëÇÕ´Ï´Ù.
Ç¥ 42.2. Zend_XmlRpc_Value
¿ÀºêÁ§Æ®¿Í ´ëÀÀÇÑ´Ù XML-RPC Çü
XML-RPC Çü | ´ëÀÀÇÑ´Ù Zend_XmlRpc_Value Á¤¼ö |
Zend_XmlRpc_Value ¿ÀºêÁ§Æ® |
---|---|---|
int | Zend_XmlRpc_Value::XMLRPC_TYPE_INTEGER |
Zend_XmlRpc_Value_Integer |
double | Zend_XmlRpc_Value::XMLRPC_TYPE_DOUBLE |
Zend_XmlRpc_Value_Double |
boolean | Zend_XmlRpc_Value::XMLRPC_TYPE_BOOLEAN |
Zend_XmlRpc_Value_Boolean |
string | Zend_XmlRpc_Value::XMLRPC_TYPE_STRING |
Zend_XmlRpc_Value_String |
base64 | Zend_XmlRpc_Value::XMLRPC_TYPE_BASE64 |
Zend_XmlRpc_Value_Base64 |
dateTime.iso8601 | Zend_XmlRpc_Value::XMLRPC_TYPE_DATETIME |
Zend_XmlRpc_Value_DateTime |
array | Zend_XmlRpc_Value::XMLRPC_TYPE_ARRAY |
Zend_XmlRpc_Value_Array |
struct | Zend_XmlRpc_Value::XMLRPC_TYPE_STRUCT |
Zend_XmlRpc_Value_Struct |
![]() |
ÀÚµ¿º¯¿ª |
---|---|
»õ·Ó´Ù |
¸®¸ðÆ® ¸Þ¼Òµå¸¦ XML-RPC Ŭ¶óÀÌ¾ðÆ®·ÎºÎÅÍ ÄÝ ÇÏ´Â ¶Ç ÇϳªÀÇ ¹æ¹ýÀº, ¼¹ö ÇÁ·Ï½Ã¸¦ »ç¿ëÇÏ´Â °ÍÀÔ´Ï´Ù. ¼¹ö ÇÁ·Ï½Ã¿Í´Â ¸®¸ðÆ®ÀÇ XML-RPC À̸§ °ø°£ÀÇ ÇÁ·Ï½Ã°¡ µÈ´Ù PHP ¿ÀºêÁ§Æ®·Î, ³×ÀÌÆ¼ºêÀÎ PHP ¿ÀºêÁ§Æ®¿Í °¡´ÉÇÑ ÇÑ ¶È°°ÀÌ Ãë±ÞÇÒ ¼ö ÀÖµµ·Ï(µíÀÌ) ÇÑ °ÍÀÔ´Ï´Ù.
¼¹ö ÇÁ·Ï½ÃÀÇ ÀνºÅϽº¸¦ ÀÛ¼ºÇÏ·Á¸é ,
Zend_XmlRpc_Client
ÀÇ ÀνºÅϽº ¸Þ¼Òµå
getProxy()
(À»)¸¦ ÄÝ ÇÕ´Ï´Ù.À̰ÍÀº
Zend_XmlRpc_Client_ServerProxy
ÀÇ ÀνºÅϽº¸¦ µ¹·ÁÁÝ´Ï´Ù.
¼¹ö ÇÁ·Ï½Ã¿¡ ´ëÇÑ ¸ðµç ¸Þ¼Òµå ÄÝÀº ¸®¸ðÆ®¿¡ Àü¼Û µÇ¾î
ÆÄ¶ó¹ÌÅ͵µ Åë»óÀÇ PHP ¸Þ¼Òµå¿Í °°ÀÌ °Ç³×ÁÙ ¼ö ÀÖ½À´Ï´Ù.
·Ê 42.3. µðÆúÆ® À̸§ °ø°£ÀÇ ÇÁ·Ï½Ã
<?php
require_once 'Zend/XmlRpc/Client.php';
$client = new Zend_XmlRpc_Client('http://framework.zend.com/xmlrpc');
$server = $client->getProxy(); // µðÆúÆ®ÀÇ À̸§ °ø°£ÀÇ ÇÁ·Ï½Ã¸¦ ÀÛ¼ºÇÕ´Ï´Ù
$hello = $server->test->sayHello(1, 2); // test.Hello(1, 2) ÇÏ "hello" (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù
getProxy()
ÀÇ ¿É¼ÇÀÇ Àμö·Î,
¸®¸ðÆ® ¼¹öÀÇ ¾î´À À̸§ °ø°£À» ÇÁ·Ï½Ã ÇÏ´ÂÁö¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
À̸§ °ø°£À» ÁöÁ¤ÇÏÁö ¾Ê¾Ò´ø °æ¿ì´Â, µðÆúÆ®ÀÇ À̸§ °ø°£À» ÇÁ·Ï½Ã ÇÕ´Ï´Ù.
´ÙÀ½ÀÇ ¿¹¿¡¼´Â,test
À̸§ °ø°£ÀÌ ÇÁ·Ï½ÃÀÇ ´ë»óÀÌ µË´Ï´Ù.
·Ê 42.4. ÀÓÀÇÀÇ À̸§ °ø°£ÀÇ ÇÁ·Ï½Ã
<?php
require_once 'Zend/XmlRpc/Client.php';
$client = new Zend_XmlRpc_Client('http://framework.zend.com/xmlrpc');
$test = $client->getProxy('test'); // "test" À̸§ °ø°£ÀÇ ÇÁ·Ï½Ã¸¦ ÀÛ¼ºÇÕ´Ï´Ù
$hello = $test->sayHello(1, 2); // test.Hello(1,2) ÇÏ "hello" (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù
¸®¸ðÆ® ¼¹ö°¡ »óÀÚÀåÀÇ À̸§ °ø°£À» ¼Æ÷Æ®Çϰí ÀÖ´Â °æ¿ì´Â,
¼¹ö ÇÁ·Ï½Ã¿¡¼µµ ±×°ÍÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.¿¹¸¦ µé¾î,
À§ÀÇ ¿¹ÀÇ ¼¹ö°¡ ¸Þ¼Òµå test.foo.bar()
(À»)¸¦ º¸°ü À¯ÁöÇϰí ÀÖ´Â °æ¿ì´Â,$test->foo->bar()
(¿Í)°ú °°ÀÌ ÄÝ ÇÕ´Ï´Ù.
XML-RPC ÀÇ ¸Þ¼Òµå ÄÝ·Î ¹ß»ýÇÒ °¡´É¼ºÀÌ ÀÖ´Â ¿¡·¯¿¡´Â, 2Á¾·ùÀÖ½À´Ï´Ù.
HTTP ÀÇ ¿¡·¯¿Í XML-RPC ÀÇ fault ÀÔ´Ï´Ù.Zend_XmlRpc_Client
(Àº)´Â ÀÌ·¯ÇÑ ¾çÂÊ ¸ðµÎ¸¦ ÀÌÇØÇϹǷÎ, °¢°¢ µ¶¸³ÇØ °ËÃâ°ú 󸮰¡ °¡´ÉÇÕ´Ï´Ù.
HTTP ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì,
Áï, ¿¹¸¦ µé¾î ¸®¸ðÆ® HTTP ¼¹ö°¡
404 Not Found
(À»)¸¦ µ¹·ÁÁØ °Í °°Àº °æ¿ì¿¡
Zend_XmlRpc_Client_HttpException
ÇÏÁö¸¸ ½½·Î¿ì µË´Ï´Ù.
·Ê 42.5. HTTP ¿¡·¯ÀÇ Ã³¸®
<?php
require_once 'Zend/XmlRpc/Client.php';
$client = new Zend_XmlRpc_Client('http://foo/404');
try {
$client->call('bar', array($arg1, $arg2));
} catch (Zend_XmlRpc_Client_HttpException $e) {
// $e->getCode() ÇÏ 404 (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù
// $e->getMessage() ÇÏ "Not Found" (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù
}
XML-RPC Ŭ¶óÀ̾ðÆ®ÀÇ »ç¿ë¹ý¿¡ °ü°è¾øÀÌ,HTTP ¿¡·¯°¡ ¹ß»ýÇÏ¸é ¹Ýµå½Ã
Zend_XmlRpc_Client_HttpException
ÇÏÁö¸¸ ½½·Î¿ì µË´Ï´Ù.
XML-RPC ÀÇ fault (Àº)´Â,PHP ÀÇ ¿¹¿Ü¿Í ´àÀº °ÍÀÔ´Ï´Ù.À̰ÍÀº
XML-RPC ¸Þ¼ÒµåÀÇ ÄݷκÎÅÍ µ¹·ÁÁÖ¾îÁö´Â Ưº°ÇÑ ÇüÅ·Î,
¿¡·¯ ÄÚµå¿Í ¿¡·¯ ¸Þ¼¼Áö¸¦ Æ÷ÇÔÇÕ´Ï´Ù.XML-RPC ÀÇ fault
(Àº)´Â,Zend_XmlRpc_Client
ÀÇ »ç¿ë Àå¸é¿¡ ÀÇÇØ¼ ó¸® ¹æ¹ýÀÌ ´Ù¸¨´Ï´Ù.
call()
¸Þ¼Òµå³ª
¼¹ö ÇÁ·Ï½Ã ¿ÀºêÁ§Æ®¸¦ »ç¿ëÇϰí ÀÖ´Â °æ¿ì¿¡´Â,
XML-RPC ÀÇ fault ÇÏÁö¸¸ ¹ß»ýÇϸé
Zend_XmlRpc_Client_FaultException
ÇÏÁö¸¸ ½½·Î¿ì µË´Ï´Ù.
ÀÌ ¿¹¿ÜÀÇ ÄÚµå¿Í ¸Þ¼¼Áö´Â, ¿ø·¡ÀÇ XML-RPC ÀÇ fault
¸®½ºÆù½ºÀÇ °ª¿¡ ´ëÀÀÇÏ´Â °ÍÀÌ µË´Ï´Ù.
·Ê 42.6. XML-RPC Fault ÀÇ Ã³¸®
<?php
require_once 'Zend/XmlRpc/Client.php';
$client = new Zend_XmlRpc_Client('http://framework.zend.com/xmlrpc');
try {
$client->call('badMethod');
} catch (Zend_XmlRpc_Client_FaultException $e) {
// $e->getCode() ÇÏ 1 (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù
// $e->getMessage() ÇÏ "Unknown method" (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù
}
call()
¸Þ¼Òµå¸¦ »ç¿ëÇØ ¸®Äù½ºÆ®¸¦ ÀÛ¼ºÇßÀ» °æ¿ì´Â,
fault ½Ã¿¡ Zend_XmlRpc_Client_FaultException
ÇÏÁö¸¸ ½½·Î¿ì µË´Ï´Ù.fault (À»)¸¦ Æ÷ÇÔÇÑ´Ù Zend_XmlRpc_Response
¿ÀºêÁ§Æ®¸¦ ÃëµæÇÏ·Á¸é
getLastResponse()
(À»)¸¦ ÄÝ ÇÕ´Ï´Ù.
doRequest()
¸Þ¼Òµå·Î ¸®Äù½ºÆ®¸¦ ÀÛ¼ºÇßÀ» °æ¿ì´Â,
¿¹¿Ü´Â ½½·Î¿ì µÇÁö ¾Ê½À´Ï´Ù.±× ´ë½Å¿¡,falut (À»)¸¦ Æ÷ÇÔÇÑ´Ù
Zend_XmlRpc_Response
¿ÀºêÁ§Æ®¸¦ µ¹·ÁÁÝ´Ï´Ù.
À̰ÍÀ» Á¶»çÇÏ·Á¸é ,
Zend_XmlRpc_Response
ÀÇ ÀνºÅϽº ¸Þ¼Òµå
isFault()
(À»)¸¦ »ç¿ëÇÕ´Ï´Ù.
XML-RPC ¼¹ö¾È¿¡´Â,XML-RPC ÀÇ system.
À̸§ °ø°£¿¡¼
µðÆåÆ®ÀÇ ÀÎÆ®·Î½ºÆäÅ©¼Ç¸Þ¼Úµå¸¦ ¼Æ÷Æ®Çϰí ÀÖ´Â °Íµµ ÀÖ½À´Ï´Ù.
Zend_XmlRpc_Client
(Àº)´Â, ÀÌ ±â´ÉÀ» °¡Áö´Â ¼¹öµµ ¼Æ÷Æ®Çϰí ÀÖ½À´Ï´Ù.
Zend_XmlRpcClient
ÀÇ getIntrospector()
¸Þ¼Òµå¸¦ ÄÝ Çϸé,
Zend_XmlRpc_Client_ServerIntrospection
ÀÇ ÀνºÅϽº¸¦ ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù.
À̰ÍÀ» »ç¿ëÇØ ¼¹öÀÇ ÀÎÆ®·Î½ºÆäÅ©¼ÇÀ» ½Ç½ÃÇÕ´Ï´Ù.
Zend_XmlRpc_Client
ÀÇ ÀνºÅϽº ¸Þ¼Òµå call()
¾ÈÀ¸·Î ÇàÇØÁö°í ÀÖ´Â °ÍÀº,
¿ì¼± ¸®Äù½ºÆ® ¿ÀºêÁ§Æ® (Zend_XmlRpc_Request
) (À»)¸¦ ÀÛ¼ºÇØ,
±×°ÍÀ» ´Ù¸¥ ¸Þ¼Òµå doRequest()
±×¸®°í ¼Û½ÅÇØ,
±× °á°ú µ¹·ÁÁÖ¾îÁö´Â ¸®½ºÆù½º ¿ÀºêÁ§Æ® (Zend_XmlRpc_Response
)
(À»)¸¦ ÃëµæÇÏ´Â °ÍÀÔ´Ï´Ù.
doRequest()
¸Þ¼Òµå´Â, ±×°Í ´Üü·Î Á÷Á¢ »ç¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
·Ê 42.7. ¸®Äù½ºÆ®·ÎºÎÅÍ ¸®½ºÆù½º¿¡ÀÇ Ã³¸®
<?php
require_once 'Zend/XmlRpc/Client.php';
$client = new Zend_XmlRpc_Client('http://framework.zend.com/xmlrpc');
$request = new Zend_XmlRpc_Request();
$request->setMethod('test.sayHello');
$request->setParams(array('foo', 'bar'));
$client->doRequest($request);
// $server->getLastRequest() ÇÏ Zend_XmlRpc_Request ÀÇ ÀνºÅϽº¸¦ µ¹·ÁÁÝ´Ï´Ù
// $server->getLastResponse() ÇÏ Zend_XmlRpc_Response ÀÇ ÀνºÅϽº¸¦ µ¹·ÁÁÝ´Ï´Ù
Ŭ¶óÀÌ¾ðÆ®·ÎºÎÅÍ XML-RPC ¸Þ¼ÒµåÀÇ ÄÝÀÌ
(call()
¸Þ¼Òµå,
doRequest()
¸Þ¼Òµå ȤÀº ¼¹ö ÇÁ·Ï½Ã¿¡ ÀÇÇØ¼)
ÇàÇØÁ³À» °æ¿ì´Â, ¸¶Áö¸· ¸®Äù½ºÆ® ¿ÀºêÁ§Æ® ¹× ±× ÀÀ´äÀÌ Ç×»ó
getLastRequest()
¹×
getLastResponse()
±×¸®°í ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù.
Áö±Ý±îÁöÀÇ ¸ðµç ¿¹¿¡¼´Â,HTTP Ŭ¶óÀ̾ðÆ®ÀÇ ¼³Á¤À» ½Ç½ÃÇÏÁö ¾Ê¾Ò½À´Ï´Ù.
ÀÌ·¯ÇÑ °æ¿ì,Zend_Http_Client
ÀÇ »õ·Î¿î ÀνºÅϽº°¡ µðÆúÆ®ÀÇ ¿É¼ÇÀ¸·Î ÀÛ¼ºµÇ¾î ±×°ÍÀ» ÀÚµ¿ÀûÀ¸·Î
Zend_XmlRpc_Client
±×¸®°í »ç¿ëÇÕ´Ï´Ù.
HTTP Ŭ¶óÀÌ¾ðÆ®´Â, ¾ðÁ¦¶óµµ
getHttpClient()
¸Þ¼Òµå·Î ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù.
´ëºÎºÐÀÇ °æ¿ì´Â µðÆúÆ®ÀÇ HTTP Ŭ¶óÀÌ¾ðÆ®·Î ¿ë¹«°¡ ÃæºÐÇϰÚÁö¿ä.
±×·¯³ª,setHttpClient()
(À»)¸¦ »ç¿ëÇÏ´Â °ÍÀ¸·Î,
´Ù¸¥ HTTP Ŭ¶óÀ̾ðÆ®ÀÇ ÀνºÅϽº¸¦ »ç¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
setHttpClient()
(Àº)´Â, ƯÈ÷ ´Üü Å×½ºÆ® ½Ã¿¡ À¯¿ëÇÕ´Ï´Ù.
Zend_Http_Client_Adapter_Test
(¿Í)°ú Á¶ÇÕÇÏ´Â °ÍÀ¸·Î,
Å×½ºÆ®¿ëÀÇ ¸®¸ðÆ® ¼ºñ½ºÀÇ ¸ñÅ©¸¦ ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÀÌ ¹æ¹ýÀ» Á¶»çÇÏ·Á¸é ,Zend_XmlRpc_Client
ÀÚüÀÇ ´Üü Å×½ºÆ®¸¦ ÂüÁ¶ÇØ ÁֽʽÿÀ.