Php说它无法找到已经包含的类

时间:2013-09-28 15:04:54

标签: php

我得到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:我的网址正在通过像RewriteRule ^(.*) ./route.php?path=$1 [L]这样的htaccess进行重写,以便网址干净且SEO友好,这可以解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

我不确定var_dump(file_exists(...))异常,但可能与this类似。但这并不是你想要解决的问题。

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

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