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
это, конечно, менее рискованно, но если вы обновляете его, вы должны ожидать, что сломаете вещи по пути. Принятие лучших практик должно быть частью этого процесса.