Как повторно инициализировать сайт в области файла Application.cfm

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

<cfscript>
if(structKeyExists(url, 'reinit')) {
    onApplicationStart();
}
</cfscript>

Но как в Application.cfm, не уверен, пожалуйста, руководство

Спасибо

2 ответа

Во-первых, бег onApplicationStart() не более перезагрузки приложения, чем запуск onClick() обработчик события щелчка мыши вызывает нажатие кнопки мыши. onApplicationStart() вызывается в результате запуска приложения, а не наоборот.

Во-вторых, Application.cfm не имеет ничего общего с жизненным циклом приложения, это всего лишь файл CFML, который включается в начале каждого запроса. это более тесно связано с onRequestStart() чем onApplicationStart(): файл, к сожалению, неправильно назван. Его коллега onRequestEnd.cfm демонстрирует это.

Я предполагаю, что ваше требование состоит в том, чтобы повторно инициализировать область вашего приложения, да? У вас есть все настройки области приложения, выделенные в конкретном файле CFML, например: applicationSettings.cfm, а затем есть логика, как это в вашем Application.cfm:

// Application.cfm
if (!structKeyExists(application, "inited")){
    include "applicationSettings.cfm";
}

(тогда, как последнее, что в applicationSettings.cfm задавать application.inited в true).

Если это так, вам просто нужно изменить свое условие, включив в него переменную переинициализации URL, например:

if (!structKeyExists(application, "inited") || structKeyExists(URL, "reinit")){
    include "applicationSettings.cfm";
}

В OnRequestStart() положить что-то вроде этого:

param name='url.reloadApp' default='no';

if(url.reloadApp == 'yes')
{
    applicationStop();
}
Другие вопросы по тегам