2010년 11월 30일 화요일

php soap

lighttpd냐 nginx냐 고민하다가 lighttpd로 결정했다. 이유는 nginx는 사용해 보지 않아서...

lighttpd + php5.2 + pear soap으로 서비스를 하는데 pear soap에서 complex type 선언할때

방법을 찾는데 좀 헤맸다.

$this->__dispatch_map['hello'] =  array(  'in' => array('name' => 'string'),  'out' => array('ret' => '{'.$this->__ns.'}ArrayOfIHello'));
$this->__typedef['{'.$this->__ns.'}StringOfHello'] = array( 'a' => 'int', 'b' => 'string', 'c' => 'string', 'd' => 'string', 'e' => 'string' );
$this->__typedef['{'.$this->__ns.'}ArrayOfHello'] = array(array('StringOfHello'=>'{'.$this->__ns.'}StringOfHello'));

요런식으로 선언하면 c# 에서는 StringOfHello 로 받아서 처리하면된다. 편하다 -_-;

aaa.StringOfHello[] strs = svr.hello(tname);
    String[] temp = new String[5];
    foreach (aaa.StringOfHello str in strs)
    {
        temp[0] = str.a.ToString();
        temp[1] = str.b;
        temp[2] = str.c;
        temp[3] = str.d;
        temp[4] = str.e;
        // dataGridView1.Rows.Add(temp);
    }