С помощью PHP Code Diff вы можете сказать, какие классы и функции были изменены? - PullRequest
1 голос
/ 30 апреля 2009

Справочная информация:

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

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

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

Вопрос:

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

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

Ответы [ 4 ]

1 голос
/ 17 июня 2009

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

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

1 голос
/ 12 мая 2009

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

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

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

0 голосов
/ 25 июня 2009

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

0 голосов
/ 25 июня 2009

http://uk3.php.net/reflection

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

...