ColdFusion: есть ли случаи использования, когда Application.cfm предпочтительнее Application.cfc

Я нахожусь в процессе обновления большого унаследованного приложения ColdFusion, которое интенсивно использует Application.cfm файлы шаблонов вместо новых Application.cfc файлы.

Кажется, что Application.cfc предложите более чистое и эффективное решение для всего, что может сделать файл Application.cfm.

  • Application.cfm запускает каждую строку последовательно для каждого запроса, поэтому он будет воссоздавать переменные приложения при каждом последующем запросе новой страницы. (Может вызвать снижение производительности, если загружено много переменных приложения) The Application.cfc позволяет для некоторых действительно глобальных переменных, чтобы избежать воссоздания с onApplicationStart() а также onRequestStart() метод

Кто-нибудь сталкивался с какими-либо случаями использования / примерами (кроме очевидного времени, которое требуется для порта), где Application.cfm страницы предпочтительнее Application.cfc

1 ответ

Решение

ИМО, это не "слишком широкая" тема. Это не мнение, я бы классифицировал его как лучшую практику.

Существует множество причин использовать cfc над cfm, Я был в этой точной ситуации.

Вот список общих функций, доступных в Application.cfc (Я уверен, что вы знаете):

  • onApplicationStart ()
  • onSessionStart ()
  • onRequestStart ()
  • по запросу()
  • onRequestEnd ()
  • onSessionEnd ()
  • onApplicationEnd ()
  • OnError()

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

Хотя оба запускаются при каждом запросе страницы, в cfc запускаются. cfm, у вас есть код, работающий все время, проверяющий условия, когда он должен или не должен быть запущен.

Придерживаться с cfm это, конечно, менее рискованно, но если вы обновляете его, вы должны ожидать, что сломаете вещи по пути. Принятие лучших практик должно быть частью этого процесса.

Другие вопросы по тегам