Класс PHP не найден, пока он включен

У меня проблема с классами, которых нет в PHP.

Первое, что я делаю, это «require_once» файл, который «require_once» содержит все остальные файлы. При загрузке никаких проблем не проявляется. Но когда я начинаю вызывать свою функцию (Users::verificate();), я получаю следующую ошибку:

Fatal error: Class 'Users' not found in /Applications/XAMPP/xamppfiles/htdocs/sparks/dashboard.php on line 4

Для проверки я добавил простой класс с функцией, которая выводит строку только методом эха. Это работает, поэтому проблема должна быть с этим классом. Функция MySql, которую я вызываю таким образом, просто работает.

$mySql = new MySql();
$mySql->executeQuery('...');

Простой класс имеет статическую статическую функцию, которую я вызываю так (О, это работает):

simple::launch();

В классе Users я вызываю нестатические функции из класса MySql из статической функции. Может ли это быть проблемой?

Как и в другом вопросе здесь, на SO, проблема заключается не в использовании коротких открывающих тегов php вместо традиционного открывающего тега php.

Даже небольшая подсказка может мне помочь :). Спасибо за ваше время!

Изменить: я добавил соответствующий код из класса User. Вот в принципе как все это выглядит:

<?php
class Users {
    public static function authenticate($email, $password) {
        $mySql = new MySql();

        $mySqlResult = $mySql->executeQuery("selectUser", [$email]);

        ...
    }

    public static function isAdmin() {
        if ($_SESSION['isAdmin']) {
            return true;
        }
        return false;
    }
    ...
}

Редактировать 2: я пытаюсь показать процесс: из Dashboard.php это первые строки кода:

<?php
    require_once('code/init.php');
    simple::launch();
    if (!Users::verify()) {
        header("Location: index.php");
    }
?>

простой:: запуск(); это код, который я использовал для тестирования. Это хорошо работает. Отсюда файл init.php выглядит так:

<?php
session_start();

require_once('simple.php');
require_once('MySql.php');
require_once('Users.php');
require_once('Projects.php');

Имена файлов правильные, так как я получаю видимую ошибку, когда они неверны.

Dashboard.php находится в корне. Оттуда есть папка с именем «код», которая содержит все эти файлы.


person Corstian Boerman    schedule 21.12.2013    source источник
comment
Можете ли вы опубликовать соответствующий код из этого класса User?   -  person Stoic    schedule 22.12.2013
comment
Кроме того, просто любимая мозоль, но «проверить» — это не слово. Вы ищете «проверить».   -  person Major Productions    schedule 22.12.2013
comment
@Stoic: код добавлен :)   -  person Corstian Boerman    schedule 22.12.2013
comment
Вы должны отредактировать свой вопрос, чтобы показать следующее: где вы включаете файл, который включает все остальное, который включает файл, и где/как вы пытаетесь получить доступ к этому классу. Это, очевидно, проблема масштаба/видимости, но трудно определить решение, не имея возможности следить за ходом выполнения.   -  person Major Productions    schedule 22.12.2013
comment
@KevinM1: Просто небольшая проблема с "красотой"... Но спасибо за подсказку :) Я отредактирую это c:   -  person Corstian Boerman    schedule 22.12.2013
comment
Можете ли вы показать нам строку require_once в dashboard.php?   -  person Andy Librian    schedule 22.12.2013
comment
@KevinM1 и andylibrian Добавлен более актуальный код. :)   -  person Corstian Boerman    schedule 22.12.2013
comment
@andylibrian Добавлен более актуальный код :)   -  person Corstian Boerman    schedule 22.12.2013
comment
Используйте функцию get_required_files() всего за одну строку до создания объекта из класса Users. Может быть полезно.   -  person M Rostami    schedule 22.12.2013
comment
@MbRostami оказалось, что users.php был включен из корневого пути, в то время как файл инициализации существовал в папке с кодом. Все остальные файлы были включены из папки с кодом по какой-то странной причине... Однако спасибо за полезную подсказку!   -  person Corstian Boerman    schedule 22.12.2013


Ответы (1)


@MbRostami дал совет в комментарии использовать функцию get_required_files(), чтобы увидеть, какие файлы включены. Получается, что были загружены неправильные файлы.

Root
| dashboard.php
| users.php
|- code
 | Users.php
 | init.php

В файле init.php требовался файл Users.php (оба файла находятся в папке с кодом). Но почему-то загрузился файл users.php из корня. Какое-то странное поведение имхо. Ну что ж, это то, что нужно исследовать в рождественские дни.

Проблема решена! Спасибо!

person Corstian Boerman    schedule 22.12.2013