Я нахожусь в ситуации, когда мне нужно сделать много кода для входа в систему. Получил функцию-оболочку, которая вызывает необходимую функцию и записывает связанные данные по пути. Но одна вещь, которая мне была бы интересна, это оболочка для оператора if. Или что-то, что позволило бы мне настроить логирование результата выписки и прочих разного данных в одном месте, а не в десятках.
Что-то на пути
$result = iff([isset($param1) && $param2 == 1]);
function iff($params) {
if ($params)
$res = true;
else
$res = false;
$log->save($miscData, $res);
return $res;
}
Или что-то еще, что позволило бы мне установить какой-то лог в одном месте. Ищем какие-то идеи.
Ну не до всех до последнего, а в ключевых местах. Идея состоит в том, чтобы создать удобный для пользователя журнал, чтобы увидеть, что произошло с данными входящего вызова и почему, поскольку они проходят через множество функций и операторов, и в конце данные довольно сильно изменяются и трансформируются.
Это похоже на то, что вы пытаетесь создать отладчик PHP... в PHP
Возможно, я не все сформулировал идеально и могло создаться впечатление, что я хочу регистрировать каждое отдельное выражение в проекте. Нет нет, это нужно только для одной конкретной модели, которая получает конкретный пакет данных из внешнего источника и обрабатывает/преобразует его и т. д. И для удобства я хочу посмотреть, что с ним происходит шаг за шагом, как он проходит через модель и что выполняется по пути.






Возможно, вы ищете метод func_get_args.
http://php.net/manual/en/function.func-get-args.php
Итак, ваша функция (и пример выполнения) будет выглядеть так:
$result = iff(isset($param1), $param2 == 1);
function iff($params) {
$numargs = func_num_args();
$arg_list = func_get_args();
$res = true;
for ($i = 0; $i < $numargs; $i++) {
if ($arg_list[$i] === false) {
$res = false;
break;
}
}
$log->save($miscData, $res);
return $res;
}
Обратите внимание, что использование этого метода позволяет передавать в функцию произвольное количество аргументов, каждый из которых является логическим значением.
Если вы не возражаете, я спрошу, почему вам нужно регистрировать каждый оператор PHP таким образом? Я не могу придумать функциональной или технической причины для этого.