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 и объект журнала будут созданы и видимы во всех унаследованных подклассах.

Другие вопросы по тегам