Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
03.03.2022, 21:09
|
|||
---|---|---|---|
Вопрос по структуре кода PHP |
|||
#18+
Что-то я забуксовал. Вообщем хочу написать функцию, которая бы при вызове определяла, откуда она вызвана — из глобального скрипта или из класса. __CLASS__ тут не поможет, так же как и проверка $this. Проверка debug_backtrace помогла бы, но думаю, что это неправильно. Идея в том, чтобы вызывать эту функцию из разных мест; если она вызвана из класса, то использовать свойства и методы этого класса, иначе использовать какие-то дефолтные настройки. Вообще самым простым способом было бы передавать первым аргументом $this (или null, если функция вызывается из глобального модуля), но я бы хотел обойтись без этого. Это возможно? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
04.03.2022, 09:25
|
|||
---|---|---|---|
|
|||
Вопрос по структуре кода PHP |
|||
#18+
ну вообще интерфейсы для этого есть ... |
|||
:
Нравится:
Не нравится:
|
|||
|
04.03.2022, 10:14
|
|||
---|---|---|---|
Вопрос по структуре кода PHP |
|||
#18+
Интерфейсы делают имплементацию методов обязательной. А я хотел бы сделать себе комфортно — если есть класс, то использую методы, если нет, то обхожусь упрощенным способом. Или я неправильно понял совет? Вообще задумка следующая. Я делаю самописный логгер, который будет использоваться для протоколирования работы скриптов (не веб-скрипты, а cli). Инстанс логгера передается в экземпляры создаваемых классов; в этом случае классы пишут логи с использованием этого логгера. Но если я при создании класса не передаю в него специализированный логгер, то классы должны выводить логи просто на экран. Ну а чтобы не писать для этого слишком много кода, вывод лога хочу сделать через вызов функции, которая будет определять, откуда она вызвана; если она вызвана из класса, то она проверяет, есть ли в этом классе внешний логгер, и если да, то будет использовать его методы. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
04.03.2022, 13:14
|
|||
---|---|---|---|
|
|||
Вопрос по структуре кода PHP |
|||
#18+
Alibek B. Но если я при создании класса не передаю в него специализированный логгер, то классы должны выводить логи просто на экран. почему просто в классе не создать элемент $log_output = "cli"/"file" ? потом там где создаёшь объект, там и задаёшь параметр через ->set_log_output($val) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=23&tablet=1&tid=1459349]: |
0ms |
get settings: |
7ms |
get forum list: |
8ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
37ms |
get topic data: |
4ms |
get forum data: |
1ms |
get page messages: |
96ms |
get tp. blocked users: |
1ms |
others: | 381ms |
total: | 537ms |
0 / 0 |