обработка текста — Как легко сгенерировать операторы отладки для кода PHP?

Мне нужно иметь возможность генерировать отладочные операторы для моего кода. Например, вот код, который у меня есть:

$this->R->radius_ft  = $this->TC->diameter / 24;
$this->R->TBETA2_rad = $this->D->beta2 / $rad; //Outer angle
$this->R->TBETA1_rad = $this->R->inner_beta1 / $rad; //Inner angle

Мне нужно уметь отображать результаты вычислений, чтобы их мог прочитать человек.

До сих пор я делал это (пример показывает только первую строку сверху):

$this->R->radius_ft  = $this->TC->diameter / 24;
if (self::DEBUG)
print("radius_ft({$this->R->radius_ft}) = diameter({$this->TC->diameter}) / 24");

Выше напечатано что-то вроде radius_ft(1.4583) = diameter(35) / 24 и некоторые из этих строк выглядят как уравнения и хорошо прослеживаются, когда я хочу проверить вещи на бумаге или если я хочу показать промежуточную работу вычислений кому-то еще.

Проблема заключается в том, что создавать эти отладочные операторы очень сложно. Я создаю их вручную, и обычно это не проблема, но в моем текущем примере это сотни строк кода, где это необходимо сделать. Много боли.

Мне было интересно, есть ли в PHP средства, позволяющие мне распечатывать операторы, показывающие, что делает каждая строка кода. Или методы полуавтоматизации создания отладочных строк для меня.

1

Решение

До сих пор я обнаружил этот метод, чтобы сократить некоторые из работ …. использовать средства макросов текстового редактора.

Вставьте строку кода в TextPad (или аналогичный редактор, который поддерживает макросы). Запишите макрос и используйте средства поиска, пометки и копирования, чтобы тщательно перемещаться между специальными символами переменной, такими как $, >и символы, которые не являются буквенно-цифровыми или $, >и т. д. при копировании, извлечении и вставке частей переменной для создания моего конкретного утверждения.

Точные шаги могут отличаться для своих нужд. Мой макрос работает с одной переменной, как $this->R->radius_ft с курсором в начале и заканчивается чем-то вроде radius_ft({$this->R->radius_ft}), с курсором через несколько символов после конца, иногда совпадающим со следующей переменной для обработки.

Возможно, то же самое можно было бы сделать с регулярными выражениями, но мне нравится, как это делает макрос — я могу обработать переменную и перейти к следующей и просто повторить макрос с комбинацией горячих клавиш. Для меня это самая утомительная часть работы.


В качестве альтернативы — вручите человеку код и дайте ему понять его. Научите их, как читать код.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]