Application.cfc против Application.cfm, а также необходимость расширения Application.cfc

Я перехожу от ColdFusion 8 к ColdFusion 10.

В настоящее время в корневом каталоге Unix у меня есть только 1 Application.cfm, и в этом корневом каталоге у меня есть около 10 подкаталогов (предыдущие программисты делали это таким образом, и я испытываю много странных вещей).

Теперь, когда у меня есть возможность повторить это веб-приложение, я хочу сделать это правильно, но самая большая проблема для меня - правильно понять, как работать с Application.cfc в CF10.

Каждый из подкаталогов представляет собой веб-приложение. Например, есть веб-приложение для отслеживания аспирантов, веб-приложение. для отслеживания выпускников, веб-приложение. для форматирования адресов и т. д.

Пользователи для этих приложений из 10 различных учреждений. Все они входят в приложение одинаковым образом (из одного интерфейса), но затем мы разделяем их, используя session.usergoup & session.username знать, кто есть кто и кто может видеть, что это за вещи.

Все учреждения совместно используют одну и ту же базу данных, поэтому в настоящее время только область данных установлена ​​на область приложения.

К сожалению, после прочтения многих публикаций Application.cfc на этом форуме я запутался еще больше, поэтому я надеюсь, что вы, ребята, не против помочь мне, чтобы мне было удобнее работать с Application.cfc в CF10.

Мое понимание таково:

На моем корневом каталоге я создам один основной Application.cfc. Мой Main Application.cfc будет обрабатывать только логин / аутентификацию пользователя.

Так что под этим корневым каталогом у меня будет 1 Application.cfc, loginform.cfm и loginaction.cfm

В loginaction.cfm это где я установил session.usergroup а также session.username после успешной аутентификации пользователя.

Так что в моем основном Application.cfc я должен установить следующее:

<cfset THIS.Name = "InstitutionMainApp" />
<cfset THIS.ApplicationTimeout = CreateTimeSpan(0,0,30,0) />
<cfset THIS.SessionManagement = true />
<cfset THIS.SetClientCookies = false />

под OnApplicationStart я сделаю:

<cfset application.dsn = "MyDB">

и под OnSessionStart я сделаю:

<cfset session.usergroup= "">
<cfset session.username= "">

Затем в каждом файле моей подпапки Application.cfc мне нужно назвать его по-разному. Для системы отслеживания выпускников у меня должно быть:

<cfset THIS.Name = "GraduateTrackingSystem" />
<cfset THIS.ApplicationTimeout = CreateTimeSpan(0,0,30,0) />
<cfset THIS.SessionManagement = true />
<cfset THIS.SetClientCookies = false />

под OnRequestStart, когда мне нужно зашифровать переменную url (пример формы), я могу установить:

<cfset request.mySecretKey = application.mySecretKey />
<cfset request.algorithm = "AES" />
<cfset request.encoding = "hex" />  

Для системы отслеживания выпускников у меня должно быть:

<cfset THIS.Name = "AlumniTrackingSystem" />
<cfset THIS.ApplicationTimeout = CreateTimeSpan(0,0,30,0) />
<cfset THIS.SessionManagement = true />
<cfset THIS.SetClientCookies = false />

под OnRequestStart, когда мне нужно зашифровать переменную url (пример формы), я могу установить:

<cfset request.mySecretKey = application.mySecretKey />
<cfset request.algorithm = "AES" />
<cfset request.encoding = "hex" /> 

Для приложения Formating Address. Я должен установить:

<cfset THIS.Name = "AddressFormattingSystem" />
<cfset THIS.ApplicationTimeout = CreateTimeSpan(0,0,30,0) />
<cfset THIS.SessionManagement = true />
<cfset THIS.SetClientCookies = false />

под OnRequestStart, когда мне нужно зашифровать переменную url (пример формы), я могу установить:

<cfset request.mySecretKey = application.mySecretKey />
<cfset request.algorithm = "AES" />
<cfset request.encoding = "hex" /> 

Тогда с application.dsn, session.usergroup а также session.username все установлено в
Main Application.cfc под корневым каталогом. Я могу свободно использовать эти переменные области действия в каждой подпапке приложения безопасно, потому что каждая подпапка application.cfc названа по-разному, так что мне не следует беспокоиться о перекрестных ссылках между группой пользователей и имя пользователя?

Пожалуйста, дайте мне знать, если мое понимание о том, как использовать Application.cfc, очень беспорядок.

1 ответ

Это длинный вопрос.

Я думаю, что это то, что вам нужно: http://corfield.org/blog/index.cfm/do/blog.entry/entry/Extending_Your_Root_Applicationcfc

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

обновление: как указал iKnowKungFoo в комментарии, если у вас другое имя приложения, т.е. this.name Вы не можете поделиться Vars в Application область, так как вы по существу разветвляете новое приложение, вы можете попробовать Server простор для тех. Логика может использоваться совместно с унаследованными вами функциями, но обратите внимание на то, доступны ли переменные в вашем приложении.

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