そのテンプレートが存在しないときにユーザーが/somePage.cfmのURLにアクセスし、別のディレクトリのテンプレートを使用するシナリオを処理したいと思います。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>
私のメソッドでも、 trueを返すonRequest
テンプレートをさらに処理していることに注意してください。isFooTemplate()