2013-09-28 4 views
2

Я получаю Fatal error: Class 'Hybrid_Auth' not found Когда я уверен, что я включил его, как это:Php говорит, что не может найти класс, который уже включен

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"; 

И это эхо появилось на выходной странице, прямо над этой ошибкой. Любая идея, что делать?

Edit: Я также попытался:

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 в файле выполняется, но следующая строка предполагает, что файл вообще не существует?

EDIT 2: Мои URL-адреса переписываются через htaccess, например RewriteRule ^(.*) ./route.php?path=$1 [L], так что URL-адреса являются чистыми и ориентированными на SEO, может ли это быть причиной этой проблемы?

+0

Вы объявили 'Hybrid_Auth' в пространстве имен? – ComFreek

+0

@ComFreek umm, я просто пытаюсь установить его после загрузки отсюда: http://hybridauth.sourceforge.net – Bluemagica

+0

Посмотрите на номер строки, где происходит ошибка. Кроме того, вы хотите получить эхо в коде конструктора, чтобы поздороваться. – crafter

ответ

2

При использовании кода PHP, вы всегда должны использовать путь к файловой системе.

При использовании адреса http://, поскольку отдельный процесс PHP начнется для ресурса, проанализируйте PHP и верните пустой результат вместо кода PHP, который вы хотите включить.

+0

Хмм, я этого не знал. Благодаря! – Bluemagica

0

Я не уверен в аномалии var_dump(file_exists(...)), но может быть похож на this. Однако это не то, что вы пытаетесь решить.

Храните пространства имен в шахте, когда вы пытаетесь использовать класс Hybrid_Auth в своем коде. Если ваш код имеет пространство имен, и если Hybrid_Auth не объявляет его собственный, вам нужно ссылаться на него с обратной косой чертой, например. $auth = new \Hybrid_Auth();.

Если пространство имен не является проблемой, предоставьте дополнительную информацию о коде, где вы пытаетесь использовать Hybrid_Auth.

+0

Почему downvote? Мой ответ действителен, просто не применим к ситуации OP, которая теперь понятна, но раньше не была. – jkrehm

Смежные вопросы