PHP-класс, расширяющий другой класс за пределами папки

У меня есть общий класс, который мне нравится расширять другими классами.

Например, у меня есть каталог с папками и файлами классов внутри этих папок.

Classes/users/users.class.php classes/general/general.class.php

У меня есть класс пользователей, расширяющий общий класс, но, поскольку они находятся в разных папках, я думаю, что общий класс не найден.

класс пользователей расширяет общий {

}

Может кто-нибудь, пожалуйста, помогите мне выяснить это.

Я должен также упомянуть, что я использую функцию автозагрузки

2 ответа

Если у вас нет автозагрузчика, включите класс раньше.

Тогда класс известен, и вы можете использовать его.

require_once(__DIR__.'/../general/general.class.php');

Вы должны убедиться, что вы загружаете оба класса или любой другой необходимый класс. Например:

В твоей начальной загрузке...

// Set up the include path so that we can easily access the class files
set_include_path('/absolute/path/to/classes'. PATH_SEPARATOR . get_include_path());
require_once('users/users.class.php');

В users.class.php:

require_once('general/general.class.php');
class User {
  // you class definition
}

Что касается получения абсолютного пути к папке с вашими классами, вы захотите настроить его в зависимости от местоположения начальной загрузки. Например:

// bootstrap lives in $_SERVER['DOCUMENT_ROOT'] and classes is one level up outside the doc root
// this code is in the bootstrap...
$path = realpath(dirname(__FILE__).'/../classes');
set_include_path($path . PATH_SEPARATOR . get_include_path());
Другие вопросы по тегам