PHP soap和命名空间.PHP致命错误:找不到类'Jira\SoapClient'

non*_*ter 0 php apache ubuntu soap

我们正在更新我们的代码库以使用PHP-5.3 +中提供的命名空间功能

以前,我们的文件都在/ htdocs/php中的webserver上幸福地生活,但现在我们将脚本分开,并将我们的PHP库放在/ htdocs/php/lib /中

在/ htdocs/php/lib /中我们有一个名为Jira.php的文件,我们给它一个命名空间:

<?php
# Define a namespace for this library
namespace Jira;

function create_client($jira_url, $options)
{
    global $client;

    try
    {
            $client = new SoapClient($jira_url, $options);
    }
    catch (Exception $error)
    {
            echo $error -> getMessage() . "<br/><p style='color:red'> Could not connect to Jira </p>";
    }
}
?>
Run Code Online (Sandbox Code Playgroud)

但是,当我们尝试从/ htdocs/php中的脚本调用此函数时,我们得到的类找不到错误:

PHP Fatal error:  Class 'Jira\SoapClient' not found
Run Code Online (Sandbox Code Playgroud)

当我们尝试创建SoapClient对象时,这会失败.

我已经验证我在/ usr/share/php/SOAP /和php_info()中安装了php-soap软件包; 显示它已启用等

所以这可能是命名空间约定的问题.如果没有抛出错误,我们如何包含该类?

问候, ns

F21*_*F21 6

SoapClient可能已分配给全局命名空间.

在您的脚本中,当前的命名空间是 Jira.

尝试使用:

$client = new \SoapClient($jira_url, $options); 
Run Code Online (Sandbox Code Playgroud)