Я хочу обработать сценарий, когда пользователь нажимает URL-адрес /somePage.cfm, когда этот шаблон не существует, и использует шаблон из другого каталога. Я знаю, что могу сделать это с помощью переписывания в apache и т. Д., Но я не хочу хранить там логику, поэтому я попытался переопределить поведение onTemplateMissing
в моем Application.cfc.
Кажется, что в моем тестировании все работает нормально, но я обеспокоен тем, что делаю это хакерское решение. Я сокращаю некоторые части, которые я еще не видел (например, методы, которые я сейчас не использую, такие как onSessionStart и т. Д. .) и может столкнуться с проблемами в будущем.
Вот что я сейчас делаю:
<cffunction name="onMissingTemplate">
<cfargument name="targetPage" />
<!--- Handle any templates that we're really loading from elsewhere --->
<cfif isFooTemplate(arguments.targetPage)>
<cfset onRequestStart(arguments.targetPage) />
<cfset onRequest(arguments.targetPage) />
<cfset onRequestEnd(arguments.targetPage) />
<cfreturn true />
</cfif>
<cfreturn false />
</cffunction>
Обратите внимание, что в моем методе onRequest
я выполняю дальнейшую обработку шаблонов, для которых isFooTemplate()
вернет true.