Компоненты ColdFusion, наследующие функции других
У меня есть два простых CFC, как показано ниже:
Test1.cfc
<cfcomponent>
<cffunction name="initMethod1" access="private" returntype="boolean">
<cfreturn true />
</cfcomponent>
Test2.cfc
<cfcomponent>
<cffunction name="initMethod2" access="private" returntype="boolean">
<cfreturn true />
</cfcomponent>
Во время OnApplicationStart() Application.cfc я делаю следующие вызовы:
<cfset application["Test1"] = CreateObject("component","jbx.c.Test1") />
<cfset application["Test2"] = CreateObject("component","jbx.c.Test2") />
Когда я выкидываю область приложения, обратите внимание ниже, что оба компонента имеют свою собственную функцию, а также функцию другого. Есть идеи, почему это так и как это исправить? Благодарю.
1 ответ
Поскольку вы связали это с onApplicationStart(), они были созданы при первом посещении этого веб-сайта. Быстрый способ сброса переменных приложения - переименование приложения.
Когда я разрабатываю известные мне cfc, которые будут находиться в области приложения, я прорабатываю все детали в пределах области запроса, а затем, когда это работает правильно, я перемещаю область приложения.
Еще одна вещь, которая полезна для устранения подобных проблем, это иметь
application.initialized = now();
Таким образом, когда вы делаете дамп области приложения, вы знаете, когда оно было настроено.