【发布时间】:2013-03-14 23:34:32
【问题描述】:
我正在尝试加载一个类,以便我在类文档的帮助下编写的 PHP 脚本能够工作。
由于我的服务器运行的是 PHP 5.3,文档建议像这样加载类:
spl_autoload_register(function($class){
if (file_exists('/webgit/webroot/home/myUsername/www/elastica/lib/' . $class . '.php')) {
echo " found \n ";
require_once('/webgit/webroot/home/myUsername/www/elastica/lib/' . $class . '.php');
}
else {
echo " not found! ";
}
});
唯一不同的是我在 if 和 else 套件中包含了 echo。 此外,myUsername 实际上是我在服务器文件系统路径中的用户名。
然后,它(文档)建议我像这样创建一个类的新实例:
$elasticaClient = new \Elastica\Client();
但是,我收到一个错误,即找不到该类。这正是打印的内容,包括错误和我的 if-else 套件:
没有找到!致命错误:在第 17 行的 /webgit/webroot/home/myUsername/www/elastica/index.php 中找不到类“Elastica\Client”
第 17 行是我尝试创建类实例的行。
现在,index.php 是上面代码所在的位置,它位于我的服务器上的 /webgit/webroot/home/myUsername/www/elastica/
所有的类文件都在/webgit/webroot/home/myUsername/www/elastica/lib/中
所以,我不明白为什么它无法找到/加载类。
如果能帮助我解决这个问题,我将不胜感激!
【问题讨论】:
-
保存你的类的文件的完整路径名是什么(你没有告诉我们文件名。)
-
@MikeBrant 我刚刚意识到从未定义过类。对于这部分代码,我只是编写了文档中的示例。但是,要回答您的问题,lib 目录中似乎有多个类似于类的文件。
-
那么这是一个无效的问题吗?如果未定义该类,您为什么希望它加载?
-
@MikeBrant 不,该类已定义。变量 $class 没有值。文档从未说过要给它一个价值。它说示例中的第一个代码是我的问题中的第一个代码块,然后是第二个代码块。
标签: php class elasticsearch elastica