PHP компилятор для сравнения кода? - PullRequest
2 голосов
/ 16 февраля 2011

У нас есть кодовая база php-скриптов, которые мы хотим преобразовать в новое соглашение о кодировании.Мы смотрим на автоматическое украшение для преобразования скриптов в новый стандарт.Мы хотели бы удостовериться, что код все еще работает так же, как и изначально.Мы можем использовать php -l в командной строке, чтобы убедиться, что ошибок нет, но мы бы хотели перейти к следующему шагу, чтобы убедиться, что старый отформатированный функционально совпадает с новым.

Есть ли способ, которым мы можем скомпилировать двоичные файлы или что-либо еще из старого и нового, чтобы гарантировать, что они идентичны?Я предполагаю, что отступы, разрывы строк и т. Д. Игнорируются в скомпилированном виде?

Ответы [ 3 ]

4 голосов
/ 16 февраля 2011

Вы можете сравнить байт-код php с bytekit-cli (blogpost) / (проект github) .

Чтобы узнать, создает ли новый и старый кодтот же php-байт-код.Зная, что вы можете быть уверены, что все будет работать.(Если вы используете аннотации, я не уверен, как это с этим работает)

2 голосов
/ 16 февраля 2011

Вызовите token_get_all на старом и новом скрипте и сравните результаты с учетом ваших изменений (добавленные / удаленные пробелы, вкладки, фигурные скобки, даже комментарии и запятые в определенных местах).

0 голосов
/ 18 февраля 2011

Я бы предложил использовать phc . Проанализируйте каждый файл и произведите вывод XML, и сравните вывод XML до и после.

phc --dump-xml filename.php

Конечно, часть проблемы может заключаться в том, что ваш beautifier не использует настоящий анализатор, и поэтому может быть неисправен (я не знаю, я не смотрел на это). В phc есть опция --pretty-print, основанная на реальном парсере, так что вам, возможно, повезет больше.

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