Я перемещаю старое приложение, которое использует application.cfm для использования application.cfc. CFM устанавливает несколько globals такой как
<cfset dsn = "myDSN">
Я попытался поместить ту строку кода в onApplicationStart, onRequestStart, и т.д. но попытаться распечатать то значение на тестовой странице приводит к ошибке. Устанавливание значения в области действия приложения (например, application.dsn) хорошо работает, конечно, но я нахожусь под жестким сроком и не могу раскачивать лодку путем выполнения по всему сайту поиск и замена для каждого глобального.
Я знаю помещение, они в объемах - правильный поступок, но, в настоящее время, являются там любым способом переключиться на использование Приложения. CFC, но все еще создают неограниченные по объему глобальные переменные?
Попробуйте поместить его в onRequest ()
вместо onRequestStart ()
.
Вам понадобятся Application.cfc и Application.cfm. Переместите весь основной код из Application.cfm в соответствующие части Applicaiton.cfc.
Затем, и это может быть единственная строка в Applicaiton.cfm:
Теперь вернитесь к Application.cfc и добавьте это вне всех функции:
Теперь в вашем test.cfm должна быть возможность выводить переменную dsn без префикса области:
Если вы определяете variables.dsn где-нибудь внутри CFC, вы помещаете переменную в область переменных CFC, которая является частной для CFC. Определив его в CFM, а затем включив CFM, он сохраняется в области переменных запроса страницы.