【发布时间】:2012-02-17 11:17:03
【问题描述】:
我们正在更新我们的代码库以使用 PHP-5.3+ 中提供的命名空间功能
以前,我们的文件都在 /htdocs/php 中的网络服务器上愉快地生活,但现在我们正在分离我们的脚本,并将我们的 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 中的脚本调用此函数时,我们会收到 class not found 错误:
PHP Fatal error: Class 'Jira\SoapClient' not found
当我们尝试创建 SoapClient 对象时失败。
我已确认我已在 /usr/share/php/SOAP/ 中安装了 php-soap 包 和 php_info();显示它已启用等。
所以这大概是命名空间约定的问题。我们如何在不引发错误的情况下包含该类?
问候, ns
【问题讨论】: