Как определить, какие файлы использует приложение ColdFusion? - PullRequest
4 голосов
/ 25 мая 2009

Я начинаю некоторую работу над существующим приложением ColdFusion без контроля версий и того, что выглядит как неиспользуемые файлы cfm (test.cfm, test2.cfm и т. Д.). Я хотел бы получить представление о том, какие файлы на самом деле являются частью приложения, чтобы я мог перевести его в git или subversion в управляемом состоянии.

Как бы вы поступили по этому поводу? Регулярное выражение и некоторые методы для поиска и сопоставления тегов cfinclude и cfcomponent? Есть какой-нибудь существующий инструмент, который делает это?

Ответы [ 6 ]

10 голосов
/ 28 мая 2009

У Бена Наделя есть метод для проверки трассировки живого стека из запущенного шаблона. Мне кажется, что вы можете легко добавить это в свое приложение и записать результаты в базу данных. Как только вы это сделаете, у вас будет хорошее представление о том, что используется, а что нет.

Я думаю, что самый простой способ, однако, это включить отладку (стандартное предупреждение здесь о сервере разработки и т. Д.). Стандартный отладчик ColdFusion предоставит вам полный список всех файлов, использованных во время выполнения одной страницы. ColdFire будет делать то же самое в удобном расширении Firebug (нажмите ColdFusion, затем нажмите Exec Times).

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

Бен Надель на следах стека

Рэй Кэмден ColdFire

Пример отладки CF с живой страницы:
alt text

6 голосов
/ 25 мая 2009

Сначала поместите его в git! Затем, если вы облажаетесь, вы можете легко откатиться назад.
(Если вас беспокоит наличие «чистого» хранилища, когда вы закончите и полностью протестируете, у вас есть возможность просто удалить одну папку .git и создать новую.)

Затем, как предлагает Томалак, используйте cflog для каждого файла. На самом деле, я бы сказал, что, может быть, даже дважды войти в систему, вверху и внизу каждого скрипта, возможно, вы сможете определить, как работает приложение.

5 голосов
/ 25 мая 2009

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

Вы можете вставить <cflog> в каждый файл и создать журнал из запущенного приложения. Изучите журнал после того, как приложение было активным некоторое время, и все функции были доступны по крайней мере один раз.

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

Не беспокойтесь о том, чтобы обрабатывать каждый файл, просто cflog имя страницы в OnRequest внутри application.cfc - целевая страница является аргументом.

Конечно, тогда проблема заключается в покрытии кода и возможности полной тренировки приложения.

<cffunction name="onRequest" returnType="void">
  <cfargument name="targetPage" type="String" required=true/>
  <cflog file="Usedpage" text="#Arguments.targetPage#">
  <cfinclude template="#Arguments.targetPage#">
   ...
</cffunction>
0 голосов
/ 29 мая 2009

Загрузите пробную версию Dreamweaver и определите сайт ColdFusion. DW может создать карту сайта и сказать вам, какие файлы не включены, связаны, cfmoduled и так далее. Я не знаю, может ли он определить неиспользованные ХФУ, но ОВЛХ должно быть легко. Обратите внимание, что я годами не использовал DW, но у него была эта функциональность около CF 4/5.

0 голосов
/ 25 мая 2009

cfinclude не сообщит вам, должен ли URL-адрес загружать файл напрямую. Я видел систему, в которой некоторые файлы не включены через index.cfm, даже когда фреймворк ожидает этого. У меня есть это в моей собственной работе, где index.cfm загружает большую часть кода, но reset.cfm обходит структуру для сброса настроек и данных сеанса.

...