Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Из разницы в коде PHP можете ли вы сказать, какие классы и функции изменились?

Автор вопроса: JamesОтветов: 4

Фон:

PHPDoc ( http://www.phpdoc.org/ ) - отличный инструмент для извлечения html-документации ваших классы или методы из комментариев в ваших файлах. Добавление комментариев PHPDoc также имеет другие преимущества: если вы используете IDE, такую ​​как Zend или Netbeans, она будет использовать PHPDocs, чтобы показать вам советы по автозаполнению.

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

Итак, вот что я хочу от системы: я фиксирую некоторый код со специальным комментарием, и мой трекер проблем связывает его с проблемой. Затем он просматривает коммит и выясняет, какие методы и классы я изменил. Затем он говорит: "Если вы ищете документацию по этой проблеме, попробуйте эти фрагменты PHPDoc: ClassX.FunctionY, ClassZ.VariableP". Он автоматически указывает пользователям на документацию, которая может быть актуальной. Я думаю, что это была бы отличная функция.

Вопрос:

Таким образом, часть, которой не хватает, - это то, что нужно сравнить с PHP-кодом и выяснить, какие классы и методы изменились. У кого-нибудь есть какие-либо указатели на какой-то код, который может это сделать?

Заранее спасибо, Джеймс

  • Вы ищете что-то готовое, что делает это, или советы о том, как собрать это самостоятельно? Josh 07.05.2009
  • Джош - любой, но желательно готовый James 13.05.2009

phpsvndiffphpdoc

Ответы

Ответ 1 · рейтинг 1 · Ólafur Waage

Если вы используете subversion, вы можете увидеть различия всех файлов, которые были изменены в проекте. И посмотрите, чем они отличаются.

Есть программное обеспечение со встроенной поддержкой подрывной деятельности, например Trac.

Вот изображение TracDiff

Ответ 2 · рейтинг 1 · Ira Baxter

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

Наш "Smart Diff" делает это, позволяя сравнивать пары файлов PHP, которые, как вы знаете, являются исходной и измененной версией. Он сравнивает AST и находит минимальные изменения для сопоставления одного с другим. Если старый и новый методы вообще похожи, он обнаружит это и сообщит вам, как один из них был отредактирован, чтобы получить другой. См. http://www.semdesigns.com/Products/SmartDifferencer/index.html а>

Ответ 3 · James

http://uk3.php.net/reflection

В PHP5 есть методы для разбора класса и проверки всех методов, включая предоставление мне номеров строк, которые мне нужны для сопоставления с diff. Используя это, я могу начать вручную сворачивать свое собственное решение.

Ответ 4 · Gabriel Solomon

вы можете написать сценарий после фиксации, который получает измененные файлы и просматривает их, чтобы делать то, что вы хотите

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы