Интересно, существует ли симпатичный принтер для php-парсера, который способен обеспечить желаемую максимальную длину строки?
(Это кажется довольно простым для реализации в некоторых базовых случаях (список элементов массива, список аргументов функции), но это начинает озадачивать переменными выражениями и т. Д.)
Насколько я знаю, не существует симпатичного принтера для PHP-Parser это учитывает правильный запас.
Там есть стандартный симпатичный принтер самого PHP-парсера.
Там также есть PSR-2 симпатичный принтер сделано для PHP-парсера.
DIY
Если этого недостаточно, вам придется написать симпатичный принтер самостоятельно.
ИМХО, это не должно быть трудно. Вы можете просто переносить, когда узел превышает правое поле и отступать 4 пробела (или что вы используете). Затем вы можете начать оптимизировать такие вещи, как определения массивов и тому подобное.
Извините за задержку с ответом. Вы могли бы использовать Фронт PHP тоже. Отступы выполняются для всех вложений операторов, 2 пробела на вложенность.
Возможен индивидуальный отступ. И это доступно в Фронт PHP.
Парсер и симпатичный принтер также тестируются вместе, используя тестовые файлы исходник-дистрибутив PHP.
Каждый тестовый файл анализируется, печатается и снова печатается.
Правильность этого обхода проверяется путем выполнения различий между двумя проанализированными и двумя симпатично распечатанными файлами.
Однако я получил рекомендацию использовать Стандартный как это имеет много особенностей. Имеет переменные выражения и функции выражений массива. Где, как и в PHP, все еще есть некоторые ошибки, доступные для использования массивов.
Стандартный довольно принтер: (Переменные выражения & Array)
public function pExpr_Variable(Expr\Variable $node) {
if ($node->name instanceof Expr) {
return '${' . $this->p($node->name) . '}';
} else {
return '$' . $node->name;
}
}
public function pExpr_Array(Expr\Array_ $node) {
return 'array(' . $this->pCommaSeparated($node->items) . ')';
}