【问题标题】:Zend Soap WSDL Generation - Windows permission errorZend Soap WSDL 生成 - Windows 权限错误
【发布时间】:2016-01-19 11:11:32
【问题描述】:

我正在尝试使用以下 PHP 代码(该代码在 Windows 7 上的 Xampp 中运行)为工作中的 Soap Web 服务生成 WSDL:

<?php
include('Zend/Soap/AutoDiscover');
$autodiscover = new Zend_Soap_AutoDiscover();
$autodiscover->setClass('MyService')
             ->setUri('http://localhost/Public_Web_Service')
             ->setLocation('http://localhost/Public_Web_Service/server.php')
             ->setServiceName('MyService');
$wsdl = $autodiscover->generate();
$wsdl->dump("C:/xampp/htdocs/file.wsdl");
?>

但是,当我运行代码时,我遇到了以下错误消息:

警告:包括(C:\xampp\php\pear\Zend\Soap\AutoDiscover):未能打开流:权限在 C:\xampp\htdocs\Public_Web_Service\zend-wsdl.php 第 2 行被拒绝

警告:include():在 C 中打开“Zend/Soap/AutoDiscover”以包含 (include_path='.;C:\xampp\php\PEAR;c:\xampp\php\PEAR\Zend') 失败: \xampp\htdocs\Public_Web_Service\zend-wsdl.php 在第 2 行

致命错误:在第 3 行的 C:\xampp\htdocs\Public_Web_Service\zend-wsdl.php 中找不到类“Zend_Soap_AutoDiscover”

我是 Zend 的新手,我的主要关注点是用 PHP 创建 Soap Web 服务。

任何帮助将不胜感激。

谢谢,

约翰·克利弗

【问题讨论】:

    标签: php zend-framework wsdl


    【解决方案1】:

    变化:

    include('Zend/Soap/AutoDiscover");
    

    收件人:

    include('Zend/Soap/AutoDiscover.php");
    

    include() 在您的服务器上查找物理文件 - 因此文件部分需要反映确切的文件名。

    您正在使用看起来像的 Zend Framework 1。在您的应用程序中,您可以在引导(启动)脚本中使用类似的内容:

    function myAutoload($className)
    {
        $classArray = explode("_", $className);
    
        foreach ($classArray as $key => $value) {
            $classArray[$key] = ucfirst($value);
        }
    
        $className  = implode('/', $classArray);
        require_once($className . ".php");
    }
    
    spl_autoload_register("myAutoload");
    

    那么你永远不需要 include() 任何东西 - 它只是自动加载。但请注意,这是遗留功能。 Zend Framework 2 以及其他现代框架不使用此功能是有原因的。我仍然是 Zend Framework 1 的忠实粉丝,因为它的用户友好性——这是大多数现代框架所缺乏的。如果你想继续使用 Zend Framework 1,上面的 sn -p 可以为你节省很多时间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-19
      • 1970-01-01
      • 2013-10-26
      • 2014-07-13
      • 1970-01-01
      • 1970-01-01
      • 2013-08-20
      相关资源
      最近更新 更多