我得到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友好,这可以解决这个问题吗?
答案 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的代码的详细信息。