На самом деле, после перечитывания ОП и прочтения предложенных решений мне придется согласиться с ОП по его настройке по этой очень важной причине:
Это в onApplicationStart ()
APPLICTION.AppInfo = structNew();
APPLICTION.AppInfo.VariableOne = "SomeStringOne";
APPLICTION.AppInfo.VariableTwo = "SomeStringTwo";
Позже может быть превращен в это, в onRequestStart ()
<cflock name="tmp" type="readonly" timeout="15">
<cfset REQUEST.AppInfo = APPLICATION.AppInfo />
</cflock>
Ваше приложение может затем перейти к доступным переменным REQUEST, особенно, если вы решите, что выхотите кэшировать ХФУ в той же области - они просто войдут в отдельный ключ:
APPLICATION.Model.MyObject = CreateObject('component','myobject');
Который, разумеется, также добавляется в ЗАПРОС (если вы выберете)
Хотитеидти по маршруту Джейк Физель выше?Нет проблем:
<cfif isDefined('URL.reload')>
<cfset APPLICATION.Model = StructNew() />
</cfif>
Теперь вы можете гибко уничтожать кеш объектов, но сохранять свои переменные (или наоборот, по вашему выбору).
Это отличная установка по другой причине.: Если вы хотите создать свой собственный «режим» разработки / производства, в котором режим разработки всегда перекомпилирует CFC, но режим производства сохраняет их в кэше.Единственное изменение, которое вам нужно сделать, это набор REQUEST, отмеченный выше:
<cfif (isProduction)>
<cflock name="tmp" type="readonly" timeout="15">
<cfset REQUEST.AppInfo = APPLICATION.AppInfo />
</cflock>
<cfelse>
<cfset REQUEST.AppInfo = StructNew() />
<cfset REQUEST.AppInfo.VariableOne = "SomeStringOne" />
...etc...
</cfif>
Вы также можете выполнить настройку vars и создание объектов в закрытом методе в Application.cfc,для еще большего удобства.