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