php - ведение журнала: использовать один и тот же объект в нескольких классах
Я сижу на этом целую вечность и не могу найти способ, который удовлетворяет меня.
Моя проблема: у меня есть родительский класс и различные подклассы. В конструкторе родителя создается новый объект (среди прочего). Этот объект из моего класса файла журнала. Он хранится в защищенной переменной.
В родительском классе ведение журнала не является проблемой, все делается по плану.
Если я хочу использовать объект в подклассе, я не могу заставить его работать. Я просто не могу получить к нему доступ. Я попробовал функцию в родительском классе, чтобы вернуть объект, это тоже не сработало.
Я в недоумении здесь.
Это конструктор родителя:
function __construct() {
...
$this->reg_log_file = new log_file(bef_registration::REG_LOG_NAME, bef_registration::REG_LOG_KEEPING);
...
}
Для создания новой записи в родительском классе достаточно следующего:
$this->reg_log_file->entry('start log');
В дочернем классе это может привести к ошибке:
Вызов функции-члена entry() для необъекта
После поисков в Google и чтения в течение нескольких часов, я все еще не нашел правильный способ сделать это.
Кто-нибудь с идеей?
1 ответ
Ты должен бежать parent::__construct();
в теле каждого дочернего contstructor и объект журнала будут созданы и видимы во всех унаследованных подклассах.