2012-02-17 64 views
0

我们正在更新我们的代码库在PHP中使用-5.3 +PHP肥皂和命名空间。 PHP致命错误:类“吉拉 SoapClient的”未找到

以前,我们的文件都幸福地生活在/ htdocs中/ PHP的Web服务器提供的命名空间功能,但现在我们分离我们的脚本,并把我们的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>"; 
    } 
} 
?> 

但是,当我们尝试从/ htdocs/php脚本中调用此函数时,我们得到了c lass not found错误:

PHP Fatal error: Class 'Jira\SoapClient' not found 

当我们尝试创建SoapClient对象时,这是失败的。

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

所以大概这是命名空间约定的问题。我们如何在不抛出错误的情况下包含该类?

问候, NS

回答

5

SoapClient的可能是分配给全局命名空间。

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

尝试使用:

$client = new \SoapClient($jira_url, $options); 
+0

Genius.Thanks非常++ – nonshatter 2012-02-17 11:22:17

+0

忘了补充,SoapClient的前\意味着globla命名空间。因此,如果在'modules'命名空间中有另一个类,请使用'\ modules \ myclass'来引用它。您还应该查看use语句(http://www.php.net/manual/en/language.namespaces.importing.php)。 – F21 2012-02-17 11:24:37

相关问题