我们正在更新代码库以使用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>";
}
}
?>
然而,当我们尝试从/ htdocs / php中的脚本调用此函数时,我们得到的类找不到错误:
PHP Fatal error: Class 'Jira\SoapClient' not found
当我们尝试创建SoapClient对象时失败了。
我已经验证我在/ usr / share / php / SOAP /中安装了php-soap软件包 和php_info();显示它已启用等。
所以可能这是命名空间约定的问题。如果没有抛出错误,我们如何包含该类?
此致 的 NS
答案 0 :(得分:6)
SoapClient可能已分配给全局命名空间。
在您的脚本中,当前命名空间为Jira.
尝试使用:
$client = new \SoapClient($jira_url, $options);