Telegram Group & Telegram Channel
🔍 Как логировать все входящие параметры в методы классов

Представим, что у нас есть большой проект с кучей классов, и в одном месте какая-то логика работает не так, как ожидалось. Часто хочется понять: а с какими аргументами вообще вызывается метод?

Вот удобный способ — использовать debug_backtrace() и func_get_args():


class SomeService {
public function process($userId, $data) {
$this->logArgs(__METHOD__);
// Дальше идёт логика
}

protected function logArgs($methodName) {
$args = func_get_args();
array_shift($args); // Убираем $methodName
$trace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 2)[1];

error_log(sprintf(
"[%s] Called from %s:%s with args: %s",
$methodName,
$trace['file'] ?? 'n/a',
$trace['line'] ?? 'n/a',
json_encode($args, JSON_UNESCAPED_UNICODE)
));
}
}


🧠 Профит: когда метод вызывается, вы сразу в логе видите:
- с какими аргументами он был вызван
- откуда он был вызван (файл и строка)

Это суперполезно в проде, когда нет возможности ставить дебаггер, а нужно поймать, что пошло не так.

📌 Совет: делайте logArgs() общим методом в базовом классе и логируйте важные вызовы на проде, оборачивая условием по уровню логирования или флагу.

👉 @php_lib



tg-me.com/php_lib/730
Create:
Last Update:

🔍 Как логировать все входящие параметры в методы классов

Представим, что у нас есть большой проект с кучей классов, и в одном месте какая-то логика работает не так, как ожидалось. Часто хочется понять: а с какими аргументами вообще вызывается метод?

Вот удобный способ — использовать debug_backtrace() и func_get_args():


class SomeService {
public function process($userId, $data) {
$this->logArgs(__METHOD__);
// Дальше идёт логика
}

protected function logArgs($methodName) {
$args = func_get_args();
array_shift($args); // Убираем $methodName
$trace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 2)[1];

error_log(sprintf(
"[%s] Called from %s:%s with args: %s",
$methodName,
$trace['file'] ?? 'n/a',
$trace['line'] ?? 'n/a',
json_encode($args, JSON_UNESCAPED_UNICODE)
));
}
}


🧠 Профит: когда метод вызывается, вы сразу в логе видите:
- с какими аргументами он был вызван
- откуда он был вызван (файл и строка)

Это суперполезно в проде, когда нет возможности ставить дебаггер, а нужно поймать, что пошло не так.

📌 Совет: делайте logArgs() общим методом в базовом классе и логируйте важные вызовы на проде, оборачивая условием по уровню логирования или флагу.

👉 @php_lib

BY Библиотека PHP программиста 👨🏼‍💻👩‍💻


Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283

Share with your friend now:
tg-me.com/php_lib/730

View MORE
Open in Telegram


Библиотека PHP программиста ‍‍ Telegram | DID YOU KNOW?

Date: |

Telegram and Signal Havens for Right-Wing Extremists

Since the violent storming of Capitol Hill and subsequent ban of former U.S. President Donald Trump from Facebook and Twitter, the removal of Parler from Amazon’s servers, and the de-platforming of incendiary right-wing content, messaging services Telegram and Signal have seen a deluge of new users. In January alone, Telegram reported 90 million new accounts. Its founder, Pavel Durov, described this as “the largest digital migration in human history.” Signal reportedly doubled its user base to 40 million people and became the most downloaded app in 70 countries. The two services rely on encryption to protect the privacy of user communication, which has made them popular with protesters seeking to conceal their identities against repressive governments in places like Belarus, Hong Kong, and Iran. But the same encryption technology has also made them a favored communication tool for criminals and terrorist groups, including al Qaeda and the Islamic State.

What is Telegram Possible Future Strategies?

Cryptoassets enthusiasts use this application for their trade activities, and they may make donations for this cause.If somehow Telegram do run out of money to sustain themselves they will probably introduce some features that will not hinder the rudimentary principle of Telegram but provide users with enhanced and enriched experience. This could be similar to features where characters can be customized in a game which directly do not affect the in-game strategies but add to the experience.

Библиотека PHP программиста ‍‍ from us


Telegram Библиотека PHP программиста 👨🏼‍💻👩‍💻
FROM USA