Гость
Map
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Вопрос по структуре кода PHP / 4 сообщений из 4, страница 1 из 1
03.03.2022, 21:09
    #40137436
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по структуре кода PHP
Что-то я забуксовал.
Вообщем хочу написать функцию, которая бы при вызове определяла, откуда она вызвана — из глобального скрипта или из класса.
__CLASS__ тут не поможет, так же как и проверка $this. Проверка debug_backtrace помогла бы, но думаю, что это неправильно.
Идея в том, чтобы вызывать эту функцию из разных мест; если она вызвана из класса, то использовать свойства и методы этого класса, иначе использовать какие-то дефолтные настройки.
Вообще самым простым способом было бы передавать первым аргументом $this (или null, если функция вызывается из глобального модуля), но я бы хотел обойтись без этого. Это возможно?
...
Рейтинг: 0 / 0
04.03.2022, 09:25
    #40137496
Вопрос по структуре кода PHP
ну вообще интерфейсы для этого есть
...
Рейтинг: 0 / 0
04.03.2022, 10:14
    #40137512
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по структуре кода PHP
Интерфейсы делают имплементацию методов обязательной.
А я хотел бы сделать себе комфортно — если есть класс, то использую методы, если нет, то обхожусь упрощенным способом.

Или я неправильно понял совет?

Вообще задумка следующая.
Я делаю самописный логгер, который будет использоваться для протоколирования работы скриптов (не веб-скрипты, а cli).
Инстанс логгера передается в экземпляры создаваемых классов; в этом случае классы пишут логи с использованием этого логгера.
Но если я при создании класса не передаю в него специализированный логгер, то классы должны выводить логи просто на экран.
Ну а чтобы не писать для этого слишком много кода, вывод лога хочу сделать через вызов функции, которая будет определять, откуда она вызвана; если она вызвана из класса, то она проверяет, есть ли в этом классе внешний логгер, и если да, то будет использовать его методы.
...
Рейтинг: 0 / 0
04.03.2022, 13:14
    #40137546
Вопрос по структуре кода PHP
Alibek B.
Но если я при создании класса не передаю в него специализированный логгер, то классы должны выводить логи просто на экран.

почему просто в классе не создать элемент $log_output = "cli"/"file" ?
потом там где создаёшь объект, там и задаёшь параметр через ->set_log_output($val)
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Вопрос по структуре кода PHP / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]