• 技术文章 >php教程 >PHP源码

    使用php5的SoapServer扩展创建web service(1)

    2016-06-08 17:31:35原创357



    学了几种语言,有时回想,却发现没什么积累,偏偏自己又喜欢卖弄;怎奈何自己又不甘堕落,于是乎就强迫自己写写日记,但是自己跟自己对话又觉得没意思, 就想着把日志写成教程,给社区里的难兄难弟没做做参考.小弟实在是没有什么经验,还望那些看到本文的有缘人多多包涵....



    php5自带了一个开发web service的扩展extension=php_soap.dll;
    在php.ini中加入上面扩展;同时配置ini文件的以下选项
    Name Default Changeable Changelog
    soap.wsdl_cache_enabled "1" PHP_INI_ALL Available since PHP 5.0.0.
    soap.wsdl_cache_dir "/tmp" PHP_INI_ALL Available since PHP 5.0.0.
    soap.wsdl_cache_ttl "86400" PHP_INI_ALL Available since PHP 5.0.0.
    这样就可以使用SoapServer了.
    那建一个文件,内容如下
    class service_class {
    /**
    * @return string
    * */
    function sayHello(){
    return ''hello world'';
    }
    /**
    * @param string $name;
    * @return string;
    */
    function getName($name){
    return $name;
    }
    }


    $server = new SoapServer(''buildin.wsdl'');(1)
    $server->setClass(''service_class'');(2)
    $server->handle();(3)

    ?>
    这里有一点需要注意的是:如果要在生成的wsdl文件有类型的话,应使用方法注释;(string,integer等).

    (1)生成一个实例,参数"buildin.wsdl"是wsdl文件所在的位置,因为SoapServer还没有提供生成wsdl的实现,因些要指明细wsdl文件所在的位置.
    (2)注册webservice的提供的方法,默认为类里面的所有方法
    (3)处理请求;

    到这里为止,在浏览器中访问本php文件,如果出现如果提示
    "cant find HTTP_RAW_POST_DATA";则在创建soapServer前,插入以下代码
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    if (!isset($HTTP_RAW_POST_DATA)){
    $HTTP_RAW_POST_DATA = file_get_contents(''php://input'');
    }
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    此时如果提示bad request之类的错误,说明web service已经启动了.

    如果没有忘记前面前到的wsdl的话,此刻必会想即然不还不能生成wsdl文件的话,那那个buildin.wsdl从何而来呢,如果对zend studio熟悉的话,就会想到tool菜单下面的wsdl generator,对了,用这个工具可以生成很帅的wsdl文件,使用方法在这里就不多说了,自己就两下就知道是怎么生成了..

    server端到此结束.
    令天就先到这里,,明天接续delphi客户端如果调用.....

    <
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:nbsp wsdl quot php SoapServer
    上一篇:在线临时改变 php.ini 内容的值 下一篇:Linux+Apache+Mysql+PHP典型配置

    相关文章推荐

    • 为什么FleaPHP使用Table Data Gateway代替Active Record提供数据库• PHP禁止图片文件的被盗链函数• PHP的其他功能• smarty结合xajax检测用户名• PHP总结我的简单静态页生成 过程,

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网