У меня есть общее представление о рабочем процессе приложения ColdFusion. Но некоторые моменты остаются для меня неясными. Общий рабочий процесс выглядит следующим образом...
- Настройки общедоступного приложения установлены (т.е. this.name, this.mappings ext.)
- onApplicationStart
- onSessionStart
- onRequestStart
У меня есть подкаталог с Application.cfc, который расширяет корневой Application.cfc, существующий в корневом каталоге.
После прочтения множества блогов, описывающих этот шаблон проектирования....
В последней ссылке (некоторые ответы предлагают некоторое базовое понимание, но ни один из них на самом деле не затрагивает использование области this
с расширенным Application.cfc. Один из следующих ответов сбивает меня с толку.. (это может быть неправильно, так как нет голосов)
Все, что попадает в эту область внутри файла Application.cfc, становится переменной приложения и создается только ОДИН РАЗ за жизненный цикл приложения. После запуска приложения другого пользователя для этого в Application.cfc нет.
Я сбросил область #application#
, и она отличается от #this#
getApplicationMetaData()
, кажется, сбрасывает одни и те же данные <cfdump var=#this#>
, поэтому я предполагаю, что эти метаданные - это первоначально установленные глобальные переменные конфигурации.
1) Если Application.cfc расширяет корневой Application.cfc с помощью прокси, является ли область действияthis
(используется для установки имени приложения) общей для расширенных компонентов? (Если я установлю this.name = "root"
в корневом компоненте и this.name = "user"
в производном, будет ли холодный синтез воспринимать это как два разных приложения или это единственный эффект, заключающийся в простом изменении значения имени приложения?
2) Можно ли каким-либо образом изменить метаданные приложения в области this
в любой из функций Applicaiton.cfc после псевдоконструктора (onApplicationStart ,onSessionStart ,onRequestStart
)?
Я пытаюсь установить сопоставления для конкретного приложения в корневом компоненте с помощью onApplicationStart()
, чтобы сопоставления устанавливались только один раз.
this
, но... настройте простой тест и создайте дамп областиthis
в обоих файлах Application.cfc для проверки. Помимо фактора крутости, есть ли какие-либо причины не устанавливать их в родительском элементе, как предложил Дэн? - person SOS   schedule 09.01.2018