2

我得到一个Fatal error: Class 'Hybrid_Auth' not found当我确定我像这样包含它时:

require_once( $base_url."/includes/hybridauth/Hybrid/Auth.php" );//$base_url is the domain where I am running this, currently, localhost

为了确定,我修改了类文件,如:

 echo "HAUTH Loaded";
class Hybrid_Auth 
{
    public static $version = "2.1.2";

该回声确实出现在输出页面上,就在该错误的正上方。知道该怎么做吗?

编辑:我也试过:

require_once( $base_url."/includes/hybridauth/Hybrid/Auth.php" );
var_dump( file_exists($base_url."/includes/hybridauth/Hybrid/Auth.php") );die;

哪个输出:

HAUTH Loaded

boolean false

为什么require不抛出任何错误加上echo文件中的执行,但下一行表明该文件甚至不存在?

编辑 2:我的网址正在通过 htaccess 重写RewriteRule ^(.*) ./route.php?path=$1 [L],因此网址干净且对 SEO 友好,这可以解决这个问题吗?

4

2 回答 2

2

include()编写 PHP 代码时,您必须始终使用文件系统路径。

使用http://地址时,作为单独的 PHP 进程将为资源启动,解析 PHP,并返回一个空结果而不是您想要包含的 PHP 代码。

于 2013-09-28T15:38:42.703 回答
0

我不确定var_dump(file_exists(...))异常情况,但可能与类似。不过,这不是您要解决的问题。

当您尝试在代码中使用 Hybrid_Auth 类时,请保留名称空间。如果您的代码有命名空间,并且 Hybrid_Auth 没有声明自己的命名空间,则需要使用反斜杠引用它,例如$auth = new \Hybrid_Auth();.

如果命名空间不是问题,请提供有关您尝试使用 Hybrid_Auth 的代码的更多详细信息。

于 2013-09-28T15:29:02.040 回答