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());